Symptoms
Consider the following scenario:
-
You install Internet Information Services (IIS) 7.5 on a computer that is running Windows Server 2008 R2 or Windows 7.
-
You add an ISAPI filter that registers for SF_NOTIFY_SEND_RAW_DATA event notifications in IIS.
-
The computer that is running IIS 7.5 receives a Client HTTP request that contains a Range header.
In this scenario, one of the following symptoms occurs:
-
If the response data size is equal to 8 MB or is less than 8 MB, IIS sends a response that states that the data length is equal to the Content-Range header, and an incorrect Content-Length header is returned in the response. Therefore, the client waits for data that does not exist.
For example, the client sends the following request to the computer that is running IIS:GET /examplefile.txt HTTP/1.1
Range: bytes=1000-2000
Host: localhost The response to this request resembles the following:HTTP/1.1 206 Partial Content
Content-Length: 8192000
Content-Type: text/plain
Last-Modified: <Day, Date and time>
Accept-Ranges: bytes
ETag: "0e7ef5bd70cb1:0"
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Date and time
Content-Range: bytes 1000-2000/8192000Note The correct value of the Content-Length header for the response is 1001. However, this response contains a value of 8192000. -
If the response data size is greater than 8 MB, the client connection fails. Additionally, the following error message is logged in the HTTP API error log:
Connection_Dropped.
Cause
This issue occurs for one of the following reasons:
-
Http.sys does not update the Content-Length header in the response when the response data size is equal to 8 MB or is less than 8 MB.
When IIS sends a full response, and when Http.sys processes the Range header of the request, IIS sends the whole buffer by a single HttpSendHttpResponse call without the HTTP_SEND_RESPONSE_FLAG_MORE_DATA flag. However, Http.sys does not update the Content-Length header in the response. Therefore, Http.sys sends only a subset of the response to the client. -
The STATUS_NOT_IMPLEMENTED status is set when the response data size is greater than 8 MB.
When IIS sends the buffer by using HttpSendHttpResponse calls with the HTTP_SEND_RESPONSE_FLAG_MORE_DATA and HTTP_SEND_RESPONSE_FLAG_PROCESS_RANGES flags, Http.sys sets the status to STATUS_NOT_IMPLEMENTED, and the connection is closed.
Resolution
Note After you apply the following hotfix, the Range header is not processed if the response is larger than 8 MB. The 14.35.2 section of Request for Comments (RFC) 2616 states that a server may ignore the Range header.
Hotfix information
A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that described in this article. Apply this hotfix only to systems that are experiencing the problem described in this article. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.
If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.
Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft website:
http://support.microsoft.com/contactus/?ws=supportNote The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.
Prerequisites
To apply this hotfix, you must have IIS 7.5 installed on a computer that is running one of the following operating systems:
-
Windows 7
-
Windows 7 Service Pack 1 (SP1)
-
Windows Server 2008 R2
-
Windows Server 2008 R2 Service Pack 1 (SP1)
Restart requirement
After you install this hotfix, you must restart the computer if IIS was running when you installed this hotfix.
Hotfix replacement information
This hotfix does not replace a previously released hotfix.
File information
The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
For all supported x86-based versions of Windows 7
File name |
File version |
File size |
Date |
Time |
Platform |
---|---|---|---|---|---|
Iiscore.dll |
7.5.7601.21828 |
198,144 |
29-Sep-2011 |
16:11 |
x86 |
For all supported x64-based versions of Windows 7 and of Windows Server 2008 R2
File name |
File version |
File size |
Date |
Time |
Platform |
---|---|---|---|---|---|
Iiscore.dll |
7.5.7600.21060 |
314,368 |
29-Sep-2011 |
16:15 |
x64 |
For all supported IA-64–based versions of Windows Server 2008 R2
File name |
File version |
File size |
Date |
Time |
Platform |
---|---|---|---|---|---|
Iiscore.dll |
7.5.7600.21060 |
575,488 |
29-Sep-2011 |
05:11 |
IA-64 |
Status
Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the "Applies to" section.
More Information
For more information about Error logging in HTTP API, click the following article number to view the article in the Microsoft Knowledge Base:
820729 Error logging in HTTP APIFor more information about ISAPI filter event notifications, visit the following MSDN website:
General information about ISAPI filter event notifications
For more information about RFC 2616, visit the following World Wide Web Consortium (W3C) website:
http://www.w3.org/Protocols/rfc2616/rfc2616.html Microsoft provides third-party contact information to help you find technical support. This contact information may change without notice. Microsoft does not guarantee the accuracy of this third-party contact information.Â
Additional file information
Additional files for all supported x86-based versions of Windows 7
File name |
Update.mum |
File version |
Not Applicable |
File size |
3,287 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
20:01 |
Platform |
Not Applicable |
File name |
X86_7b3906728819ebfe5f9c7c6c56c338e1_31bf3856ad364e35_6.1.7600.21060_none_3b1ec47438016268.manifest |
File version |
Not Applicable |
File size |
705 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
20:01 |
Platform |
Not Applicable |
File name |
X86_cd3e3a137d957007590989560801335c_31bf3856ad364e35_6.1.7601.21828_none_bf47ab8a3f2f4291.manifest |
File version |
Not Applicable |
File size |
705 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
20:01 |
Platform |
Not Applicable |
File name |
X86_microsoft-windows-iis-corewebengine_31bf3856ad364e35_6.1.7600.21060_none_d01a7b1ba3aa60c8.manifest |
File version |
Not Applicable |
File size |
10,228 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
16:23 |
Platform |
Not Applicable |
File name |
X86_microsoft-windows-iis-corewebengine_31bf3856ad364e35_6.1.7601.21828_none_d23443e5a0a8f18d.manifest |
File version |
Not Applicable |
File size |
10,228 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
16:44 |
Platform |
Not Applicable |
Additional files for all supported x64-based versions of Windows 7 and of Windows Server 2008 R2
File name |
Amd64_757054c725834f079416922bc5ba9cb4_31bf3856ad364e35_6.1.7601.21828_none_99d6afe07fb91c34.manifest |
File version |
Not Applicable |
File size |
1,060 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
20:01 |
Platform |
Not Applicable |
File name |
Amd64_9548f623fcc12dd4563da037f1d68d67_31bf3856ad364e35_6.1.7600.21060_none_f8bd2c953d494b35.manifest |
File version |
Not Applicable |
File size |
1,060 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
20:01 |
Platform |
Not Applicable |
File name |
Amd64_microsoft-windows-iis-corewebengine_31bf3856ad364e35_6.1.7600.21060_none_2c39169f5c07d1fe.manifest |
File version |
Not Applicable |
File size |
10,236 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
16:40 |
Platform |
Not Applicable |
File name |
Amd64_microsoft-windows-iis-corewebengine_31bf3856ad364e35_6.1.7601.21828_none_2e52df69590662c3.manifest |
File version |
Not Applicable |
File size |
10,236 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
18:07 |
Platform |
Not Applicable |
File name |
Update.mum |
File version |
Not Applicable |
File size |
3,729 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
20:01 |
Platform |
Not Applicable |
File name |
Wow64_microsoft-windows-iis-corewebengine_31bf3856ad364e35_6.1.7600.21060_none_368dc0f1906893f9.manifest |
File version |
Not Applicable |
File size |
7,906 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
16:18 |
Platform |
Not Applicable |
File name |
Wow64_microsoft-windows-iis-corewebengine_31bf3856ad364e35_6.1.7601.21828_none_38a789bb8d6724be.manifest |
File version |
Not Applicable |
File size |
7,906 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
16:32 |
Platform |
Not Applicable |
Additional files for all supported IA-64–based versions of Windows Server 2008 R2
File name |
Ia64_0355f3d2e300de7f98a3eb8602e703fd_31bf3856ad364e35_6.1.7600.21060_none_8fe2fa686610011b.manifest |
File version |
Not Applicable |
File size |
1,058 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
20:01 |
Platform |
Not Applicable |
File name |
Ia64_f5072c07e845b374364234237c749579_31bf3856ad364e35_6.1.7601.21828_none_e25b19583fc3f919.manifest |
File version |
Not Applicable |
File size |
1,058 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
20:01 |
Platform |
Not Applicable |
File name |
Ia64_microsoft-windows-iis-corewebengine_31bf3856ad364e35_6.1.7600.21060_none_d01c1f11a3a869c4.manifest |
File version |
Not Applicable |
File size |
10,232 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
16:30 |
Platform |
Not Applicable |
File name |
Ia64_microsoft-windows-iis-corewebengine_31bf3856ad364e35_6.1.7601.21828_none_d235e7dba0a6fa89.manifest |
File version |
Not Applicable |
File size |
10,232 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
16:38 |
Platform |
Not Applicable |
File name |
Update.mum |
File version |
Not Applicable |
File size |
2,767 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
20:01 |
Platform |
Not Applicable |
File name |
Wow64_microsoft-windows-iis-corewebengine_31bf3856ad364e35_6.1.7600.21060_none_368dc0f1906893f9.manifest |
File version |
Not Applicable |
File size |
7,906 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
16:18 |
Platform |
Not Applicable |
File name |
Wow64_microsoft-windows-iis-corewebengine_31bf3856ad364e35_6.1.7601.21828_none_38a789bb8d6724be.manifest |
File version |
Not Applicable |
File size |
7,906 |
Date (UTC) |
29-Sep-2011 |
Time (UTC) |
16:32 |
Platform |
Not Applicable |