页面未显示,因为请求实体在 IIS 上太大
Posted
技术标签:
【中文标题】页面未显示,因为请求实体在 IIS 上太大【英文标题】:The page was not displayed because the request entity is too large on IIS 【发布时间】:2014-05-10 20:03:14 【问题描述】:我在将一个页面重定向到另一个网页时收到以下错误:
“页面未显示,因为请求实体太大。”。
我重定向到另一个页面的页面包含大量数据,所以基本上我知道问题的原因。
但是,我正在为此寻找可行的解决方案。其次,当我研究这个问题时,我发现上传任何大文件时都会产生此类问题。
但我没有上传任何大文件,它只是页面本身包含大量数据。及时的解决方案将不胜感激。
【问题讨论】:
我的用户也有同样的问题。没有上传功能,但他们会定期收到错误。这可能与 IIS 有关,他们在某个页面上停留的时间过长,离开他们的计算机,然后几个小时后回来并单击一个链接。我无法复制错误。 @Shilpa,你有解决方案吗?如果是,请与我分享。谢谢。 @kevin,请尝试在您的 web.config 文件的<httpRuntime executionTimeout="999999" maxRequestLength="1024000" requestValidationMode="2.0" />
我认为这将解决问题如果您启用了 SSL:
在 IIS7.5 上的 applicationHost.config 文件中设置 uploadReadAheadSize 可以解决这两种情况下的问题。您可以直接在 applicationhost.config 中修改此值。
在默认网站下选择网站
选择配置编辑器
在 Section Dropdown 中,选择“system.webServer/serverRuntime”
为“uploadReadAheadSize”输入更高的值,例如 1048576 字节。默认为 49152 字节。
在客户端重新协商过程中,请求实体主体必须使用 SSL 预加载进行预加载。 SSL 预加载将使用 UploadReadAheadSize 元数据库属性的值,该属性用于 ISAPI 扩展
Reference.
【讨论】:
我刚刚确认这是修复!在 IIS7 中使用 .NET webforms 进行回发后,如果页面空闲 90 秒然后我又进行了一次回发,我会收到请求实体太大错误。希望这会对其他人有所帮助。哇! 是这个吗?我通过执行以下操作使其正常工作
-
转到 IIS。
点击服务器名称
在功能(图标)中,选择配置编辑器。
点击顶部的设置下拉菜单
遍历路径system.webServer -> security -> requestFiltering -> maxAllowedContentLength 并将其设置为334217728。(然后点击回车然后在右上角应用)。
您也可以重新启动网络服务器以获得良好的效果。 之后我可以将我的 150k 数据库上传到 phpymyadmin。
我还在programs/PHP/phpversion/php.ini的php.ini中设置post_max大小为8000
它的大小可能有点过头了,但是当你有大文件时它可以完成工作。
【讨论】:
修复后错误停止。谢谢。【参考方案3】:对我来说,uploadReadAheadSize 并没有解决我的问题。
我在我的 asp.net web.config 中更改了这两个设置,最后为我上传了文件:
<system.web>
<system.webServer
<httpRuntime executionTimeout="999999" maxRequestLength="20000" requestValidationMode="2.0" /> <!-- 20 MB -->
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="20500000" /> <!-- 20.5 MB - making it match maxRequestLength to fix issue with uploading 20mb file -->
</requestFiltering>
</security>
</system.webServer>
【讨论】:
第二个帮助 第二个实际上也为我解决了这个问题【参考方案4】:另一个可能的原因是 身份验证 设置。在 IIS7 中,
选择默认网站下的站点
选择身份验证
选择 Windows 身份验证并启用。禁用所有其他。
当 Windows 身份验证仍处于选中状态时,单击“操作”窗格中的“高级设置”。
确保扩展保护处于接受状态并选中启用内核模式身份验证
【讨论】:
【参考方案5】:我遇到了同样的错误,上面的修复不起作用。我只在 HTTP (localhost) 但是这修复了 413 错误
Set-WebConfigurationProperty -filter /system.webserver/security/requestfiltering/requestLimits -name maxAllowedContentLength -value 134217728
【讨论】:
【参考方案6】:我做了上述但仍然没有快乐。
为我解决问题的同时还提高了请求限制: - 在 IIS 管理器中选择站点 - 单击右侧菜单中的“编辑功能设置” - 为“最大允许内容长度”插入 200000000
【讨论】:
【参考方案7】:在我的例子中,下载文件时发生了错误。
原因是,我有一个代码在(错误的)情况下明确向客户端发送 HTTP 413。
(See here for details).
因此请注意,在您的代码(或您正在使用的库中)设置 HTTP 响应代码 413 也可以生成 OP 的错误消息。
【讨论】:
以上是关于页面未显示,因为请求实体在 IIS 上太大的主要内容,如果未能解决你的问题,请参考以下文章
上传报告失败 - HTTP 代码 413:页面未显示,因为请求实体太大
Django + iis 上传文件时发生未显示页面,因为请求实体过大
iis7 https 发生413错误 未显示页面,因为请求实体过大
IIS 8.5 请求实体太大在 IE 11 中发生,但在 Chrome 中没有