FIX: You may receive an error message when you use a client application to connect to a server that is running IIS 6.0 or when you try to download files from the server


Symptoms


When you use a client application, such as a Web browser or a Microsoft ASP.NET application, to connect to a server that is running Microsoft Internet Information Services 6.0 (IIS), you may receive one or more of the following error messages:
Error message 1
The underlying connection was closed. An unexpected error occurred on a receive.
Error message 2
System.Net.WebException: The underlying connection was closed.
Error message 3
Exception Type: System.Net.Sockets.SocketException

ErrorCode: 10054

NativeErrorCode: 10054

Message: An existing connection was forcibly closed by the remote host.

This problem may also occur when the following conditions are true:
  • You try to download files from a server that is running IIS 6.0 to a client computer that has a slow connection.
  • You try to download very large files.
To confirm that this problem is related to the throughput timer, check the HttperrX.log file on the server that is running IIS for entries that contain a Timer_MinBytesPerSecond error message that resembles the following:

2002-07-05 19:53:00 127.0.0.1 2894 127.0.0.1 80 HTTP/1.1 GET / 505 - Version_N/S 2002-07-05 20:06:01 172.31.77.6 64388 127.0.0.1 80 - - - - - Timer_MinBytesPerSecond

Cause


This problem occurs because of an error in the Http.sys file.

Resolution


To resolve this problem, obtain the latest service pack for Microsoft Windows Server 2003. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
889100 How to obtain the latest service pack for Windows Server 2003
If this problem persists after you install the latest service pack for Windows Server 2003, the network connection may be too slow. Use a network trace to determine whether the client is delayed in receiving the response and the packet retransmissions. To work around this problem, reduce or disable the MinFileBytesPerSec property in IIS 6.0 to prevent a slow client connection from being closed prematurely.

Confirm the MinFileBytesPerSec property value

To confirm the current setting, follow these steps:
  1. Click Start, click Run, type cmd, and then click OK.
  2. At the command prompt, type the following command, and then press ENTER:
    cscript adsutil.vbs get w3svc/MinFileBytesPerSec
    The current minimum bytes per second appears.

Reduce the MinFileBytesPerSec property value

To reduce the MinFileBytesPerSec property to 50 bytes per second, follow these steps:
  1. Click Start, click Run, type cmd, and then click OK.
  2. At the command prompt, type the following command, and then press ENTER:
    cscript adsutil.vbs set w3svc/MinFileBytesPerSec 50

Disable the MinFileBytesPerSec property

To disable the MinFileBytesPerSec property, follow these steps:
  1. Click Start, click Run, type cmd, and then click OK.
  2. At the command prompt, type the following command, and then press ENTER:
    cscript adsutil.vbs set w3svc/MinFileBytesPerSec 0

Status


Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the "Applies to" section.

References


For more information, click the following article numbers to view the articles in the Microsoft Knowledge Base:

820729 Error logging in HTTP API

886461 FIX: You cannot download large files from an ASP.NET application on a computer that is running IIS 6.0