超过响应缓冲区限制

 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)或适合的数值,取决于server内存是否足够大。

然后重新启动iisadminservice服务。

注意事项:

1、要注意server内存量是否足够。
2、还有由于数据量比較大,对应的还要改动ASP处理时间,即:
改动“AspScriptTimeout“ 默认值90(秒)
改动“AspSessionTimeout“ 默认值20(分钟)。

 

 

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

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

 

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

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

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

ASP_0251_:_80004005|Response_Buffer_Limit_Exceeded

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

 

出现此问题的解决办法是当 ASP 响应缓冲被禁用时,IIS 会强制默认活动server页面 (ASP) 响应缓冲区值为 4 MB。

 

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

 

方法 1: 降低响应大小

若要解决此问题时,使用 Response.BinaryWrite 方法和 ASP 缓冲处于关闭状态,验证返回给client的数据不大于 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

 

 

 

posted @ 2014-06-09 13:30  mfrbuaa  阅读(226)  评论(0编辑  收藏  举报