超过响应缓冲区限制

 Response 对象 错误 'ASP 0251 : 80004005'

超过响应缓冲区限制

/his/zygl/jzgl_left.asp,行 0

此 ASP 页的执行造成响应缓冲区超过其配置限制。

于是上网查找答案,得出以下结果,并顺利解决问题:

因为页面中数据较多,有上千条,导致出现“超过响应缓冲区限制。此 ASP 页的执行造成响应缓冲区超过其配置限制”。如果
response.buffer=false这样设的话,可以查出,但是好慢。怎么解决?

我们可以加大Buffer的缓冲区,办法是:

先在服务里关闭iisadminservice服务。

找到 windows\system32\inesrv\下的metabase.xml,打开,找到
AspBufferingLimit 把他修改为需要的值,默认为4194304,即4096KB,4M。

建议把它修改为41943040(40M)或适合的数值,取决于服务器内存是否足够大。

然后重启iisadminservice服务。

注意事项:

1、要注意服务器内存量是否足够。
2、还有因为数据量比较大,相应的还要修改ASP处理时间,即:
修改“AspScriptTimeout“ 默认值90(秒)
修改“AspSessionTimeout“ 默认值20(分钟)。

 

 

当您使用 Response.BinaryWrite 方法,在 IIS 6 中和 IIS 7 中时出现错误消息:"HTTP 500"或"超过响应缓冲区限制"

http://support.microsoft.com/kb/944886/zh-cn

 

当您将文件发送到客户端计算机从安装了 Web 服务器上哪些 Internet Information Services (IIS) 7 或 IIS 6,您可能会收到类似于以下内容的一种在客户端计算机上一条错误消息:

错误消息 1
HTTP 500-内部服务器错误
错误消息 2
响应对象错误 ASP 0251: 80004005
超出响应缓冲区限制
ASP 页的执行引起响应缓冲区超过其配置的限制。
错误消息 1

此外,您可能会收到一条消息类似于以下内容,IIS 日志文件中:

ASP_0251_:_80004005|Response_Buffer_Limit_Exceeded

若要将文件发送到客户端计算机使用 Response.BinaryWrite 方法和 AspBufferingOn 属性设置为 False 时,会出现此问题。

 

出现此问题的原因是当 ASP 响应缓冲被禁用时,IIS 会强制默认活动服务器页面 (ASP) 响应缓冲区值为 4 MB。

 

在大多数的方案 4 MB 缓冲区限制足以为 ASP 响应发送到 Web 客户端的。没有足够此限制时使用下列方法之一。

 

方法 1: 减少响应大小

若要解决此问题时,使用 Response.BinaryWrite 方法和 ASP 缓冲处于关闭状态,验证返回给客户端的数据不大于 4 MB。

如果响应,则大于 4 MB 的默认值此大小经常会导致较差的用户体验。在 Web 浏览器必须通过网络接收较大的响应。然后,在 Web 浏览器必须分析,并显示非常大的 HTML 响应。

 

方法 2: 启用 ASP 响应缓冲,并且增加缓冲区限制

IIS 6 中您可以启用或禁用缓冲在应用程序级别使用 AspBufferingOn IIS 元数据库属性。有关 AspBufferingOn IIS 元数据库属性的详细信息,请访问下面的 Microsoft 网站:

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

注意IIS 7 中您可以启用或禁用 ASP 响应缓冲在应用程序级别的 <System.webserver> ASP 部分中使用 bufferingOn ApplicationHost.config 文件中或在 Web.config 文件中。

若要启用或禁用缓冲页级别,您可以使用 Response.Buffer 属性。有关 Response.Buffer 属性的详细信息,请访问下面的 MSDN 网站:

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

如果您必须增加缓冲区限制,选择允许的最大的已知的响应大小的缓冲区限制。如果不事先知道最大响应大小,您可以将缓冲区限制增加到一个较大的值在测试过程中。在完成测试后,出现的最大值在 sc 字节 中使用字段中 IIS 日志文件为页生成的响应。

若要增加缓冲限制在 IIS 6 中的,请按照下列步骤操作:

  1. 单击 开始、 单击 运行,键入 cmd,然后单击 确定
  2. 键入下面的命令,然后按 ENTER 键:
    cd/d %systemdrive%\inetpub\adminscripts
  3. 键入下面的命令,然后按 ENTER 键:
    cscript.exe adsutil.vbs SET w3svc/aspbufferinglimit LimitSize
    注意LimitSize 表示缓冲的限制大小以字节为单位)。例如对于数 67108864 将缓冲的大小限制设置为 64 MB。

若要确认已正确设置了缓冲区限制,请按照下列步骤操作:

  1. 单击 开始、 单击 运行,键入 cmd,然后单击 确定
  2. 键入下面的命令,然后按 ENTER 键:
    cd/d %systemdrive%\inetpub\adminscripts
  3. 键入下面的命令,然后按 ENTER 键:
    cscript.exe adsutil.vbs GET w3svc/aspbufferinglimit

 

 

 

你可能感兴趣的:(数据库,服务器,Microsoft,buffer,asp,IIS)