300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > iis服务器响应上限 HTTP 500 或超出响应缓冲区限制 - Internet Information Services | Microsoft Docs...

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

时间:2021-06-29 04:56:30

相关推荐

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

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

04/15/

本文内容

本文帮助您解决 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 应用程序的性能。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。