大家好,又见面了,我是你们的朋友全栈君。
Response 对象 错误 ‘ASP 0251 : 80004005’
超过响应缓冲区限制
/his/zygl/jzgl_left.asp,行 0
此 ASP 页的运行造成响应缓冲区超过其配置限制。
于是上网查找答案,得出下面结果,并顺利解决这个问题:
由于页面中数据较多,有上千条,导致出现“超过响应缓冲区限制。此 ASP 页的运行造成响应缓冲区超过其配置限制”。假设 response.buffer=false这样设的话,能够查出,可是好慢。怎么解决?
我们能够加大Buffer的缓冲区,办法是:
先在服务里关闭iisadminservice服务。
找到 windowssystem32inesrv下的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 中的,请依照下列步骤操作:
- 单击 開始、 单击 执行,键入 cmd,然后单击 确定。
- 键入以下的命令,然后按 ENTER 键: cd/d %systemdrive%inetpubadminscripts
- 键入以下的命令,然后按 ENTER 键: cscript.exe adsutil.vbs SET w3svc/aspbufferinglimit LimitSize 注意LimitSize 表示缓冲的大小限制以字节为单位)。比如对于数 67108864 将缓冲的大小限制设置为 64 MB。
若要确认已正确设置了缓冲区限制,请依照下列步骤操作:
- 单击 開始、 单击 执行,键入 cmd,然后单击 确定。
- 键入以下的命令,然后按 ENTER 键: cd/d %systemdrive%inetpubadminscripts
- 键入以下的命令,然后按 ENTER 键: cscript.exe adsutil.vbs GET w3svc/aspbufferinglimit
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/155403.html原文链接:https://javaforall.cn