Microsoft KB Archive/944886

= Error message when you use the Response.BinaryWrite method in IIS 6 and in IIS 7: &quot;HTTP 500&quot; or &quot;Response buffer limit exceeded&quot; =

Article ID: 944886

Article Last Modified on 11/15/2007

-

APPLIES TO


 * Microsoft Internet Information Services 7.0
 * Microsoft Internet Information Services 6.0

-



SYMPTOMS
When you send a file to a client computer from a Web server on which Internet Information Services (IIS) 7 or IIS 6 is installed, you may receive an error message on the client computer that resembles one the following:

Error message 1

HTTP 500 - Internal Server Error

Error message 2

Response object error 'ASP 0251 : 80004005'

Response Buffer Limit Exceeded

Execution of the ASP page caused the Response Buffer to exceed its configured limit.

Error message 1

Additionally, you may receive a message in the IIS log file that resembles the following:

ASP_0251_:_80004005|Response_Buffer_Limit_Exceeded

This problem occurs when you use the Response.BinaryWrite method to send the file to the client computer and the AspBufferingOn property is set to False.



CAUSE
This problem occurs because IIS enforces a default Active Server Pages (ASP) response buffer value of 4 MB when ASP response buffering is disabled.



RESOLUTION
In most scenarios, the 4 MB buffer limit is sufficient for ASP responses that are sent to Web clients. If this limit is insufficient, use one of the following methods.

Method 1: Decrease the response size
To resolve this issue when you use the Response.BinaryWrite method and ASP buffering is turned off, verify that the data that is returned to the client is not larger than 4 MB.

If the response is larger than the 4 MB default value, this size frequently causes a poor user experience. The Web browser must receive the large response over the network. Then, the Web browser must parse and display a very large HTML response.

Method 2: Enable ASP response buffering, and increase the buffer limit
In IIS 6, you can use the AspBufferingOn IIS metabase property to enable or disable buffering at the application level. For more information about the AspBufferingOn IIS metabase property, visit the following Microsoft Web site:

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/fbe1bd5f-52d4-4a26-8ab1-7bb897bb3d53.mspx

Note In IIS 7, you can enable or disable ASP response buffering at the application level by using the bufferingOn value in the ASP section of  in the ApplicationHost.config file or in the Web.config file.

To enable or disable buffering at the page level, you can use the Response.Buffer property. For more information about the Response.Buffer property, visit the following MSDN Web site:

http://windowssdk.msdn.microsoft.com/en-us/library/ms526001.aspx

If you must increase the buffer limit, select a buffer limit that allows for the largest known response size. If you do not know the largest response size in advance, you can increase the buffer limit to a large value during testing. After you finish testing, use the largest value that appears in the sc-bytes field in the IIS log file for the response that is generated for the page.

To increase the buffering limit in IIS 6, follow these steps:  Click Start, click Run, type cmd, and then click OK. Type the following command, and then press ENTER:

cd /d %systemdrive%\inetpub\adminscripts

 Type the following command, and then press ENTER:

cscript.exe adsutil.vbs SET w3svc/aspbufferinglimit

Note  represents the buffering limit size in bytes. For example, the number 67108864 sets the buffering limit size to 64 MB.

To confirm that the buffer limit is set correctly, follow these steps:  Click Start, click Run, type cmd, and then click OK. Type the following command, and then press ENTER:

cd /d %systemdrive%\inetpub\adminscripts

</li> Type the following command, and then press ENTER:

cscript.exe adsutil.vbs GET w3svc/aspbufferinglimit

</li></ol>

<div class="status_section">

STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the &quot;Applies to&quot; section.

<div class="moreinformation_section">

MORE INFORMATION
When you use the Response.BinaryWrite method and ASP response buffering is disabled, you can only send 4 MB of data to the client unless the buffering limit property for the page is explicitly set. By default, the value for the ASPBufferLimit property in IIS 6 and for the bufferLimit property in IIS 7 is 4,194,304 bytes.

Additionally, the BinaryWrite API fails if the response to the client is larger than the buffer limit value even though ASP response buffering is turned off.

Note We recommend that you enable ASP response buffering. ASP response buffering increases the performance of a Web application.

Keywords: kbtshoot kbprb KB944886

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.