iis服务器响应上限,HTTP 500 或超出响应缓冲区限制 - Internet Information Services | Microsoft Docs...

在 IIS 中使用 Response.BinaryWrite 时,HTTP 500 或响应缓冲区限制超出错误

04/15/2020

本文内容

本文帮助您解决 HTTP 500 (响应缓冲区限制超过) 发送文件时发生的 Response.BinaryWrite 错误。

原始产品版本:   Internet Information Services 7 及更高版本

原始 KB 编号:   944886

症状

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

错误消息 1

HTTP 500 - 内部服务器错误

错误消息 2

响应对象错误"ASP 0251: 80004005"

超出响应缓冲区限制

执行 ASP 页面导致响应缓冲区超出其配置的限制。

错误消息 3

此外,您可能在 IIS 日志文件收到类似于以下内容的消息:

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 property is set to AspBufferingOn False.

原因

出现此问题的原因是,当禁用 ASP 响应缓冲时,IIS Active Server Pages (ASP) 4 MB 的响应缓冲区值。

在大多数情况下,4 MB 缓冲区限制足以用于发送到 Web 客户端的 ASP 响应。 如果此限制不足,请使用下列方法之一。

解决方案 1:减小响应大小

若要在使用此方法并关闭 ASP 缓冲时解决此问题,请验证返回到客户端的数据是否不超过 Response.BinaryWrite 4 MB。

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

解决方案 2:启用 ASP 响应缓冲并增加缓冲区限制

可以使用 AspBufferingOn IIS 元数据库属性在应用程序级别启用或禁用缓冲。

备注

在 IIS 7 和更高版本中,可以使用文件或文件中 ASP 部分的值在应用程序级别启用或 bufferingOn 禁用 ASP 响应 ApplicationHost.config Web.config 缓冲。

若要在页面级别启用或禁用缓冲,可以使用 Response.Buffer 该属性。

如果必须增加缓冲区限制,请选择允许最大已知响应大小的缓冲区限制。 如果事先不知道最大响应大小,可以在测试期间将缓冲区限制增大到较大的值。 测试完成后,对为页面生成的响应使用 IIS 日志文件 sc-bytes 字段中显示的最大值。

若要提高 IIS 7 和更高版本中的缓冲限制,请按照以下步骤操作:

选择 "开始",选择"运行",键入 cmd, 然后选择 "确定"。

键入 cd /d %systemdrive%\inetpub\adminscripts 命令,然后按 Enter。

键入 cscript.exe adsutil.vbs SET w3svc/aspbufferinglimit LimitSize 命令,然后按 Enter。

备注

LimitSize 表示缓冲限制大小(以字节为单位)。 例如,数字 67108864 将缓冲限制大小设置为 64 MB。

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

选择 "开始",选择"运行",键入 cmd, 然后选择 "确定"。

键入 cd /d %systemdrive%\inetpub\adminscripts 命令,然后按 Enter。

键入 cscript.exe adsutil.vbs GET w3svc/aspbufferinglimit 命令,然后按 Enter。

更多信息

使用该方法并禁用 ASP 响应缓冲时,除非明确设置了页面的缓冲限制属性,否则只能向客户端发送 Response.BinaryWrite 4 MB 的数据。 默认情况下,IIS 7 或更高版本中的属性的值为 bufferLimit 4,194,304 字节。

此外,如果对客户端的响应大于缓冲区限制值,API 将失败,即使 ASP 响应缓冲 BinaryWrite() 已关闭。

备注

我们建议您启用 ASP 响应缓冲。 ASP 响应缓冲提高了 Web 应用程序的性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值