IIS7、SSL 和“页面未显示,因为请求实体太大。”
Posted
技术标签:
【中文标题】IIS7、SSL 和“页面未显示,因为请求实体太大。”【英文标题】:IIS7, SSL and "The page was not displayed because the request entity is too large." 【发布时间】:2011-09-28 23:02:02 【问题描述】:我们在 64 位机器上的 IIS7 上通过 SSL 运行 ASP.NET 应用程序。
现在我发现有几篇文章提到要解决这个错误,我需要修改system.webServer/serverRuntime/uploadReadAheadSize
。美好的。我尝试通过appcmd.exe
然后手动编辑我的 web.config 来设置这个:
other config settings
-->
<serverRuntime uploadReadAheadSize="1048576" />
</system.webServer>
但是,当我在网站的 web.config 中设置它时,我得到了这个错误:
此配置部分不能用于此路径。当该部分锁定在父级别时会发生这种情况。默认情况下锁定 (overrideModeDefault="Deny"),或者由具有 overrideMode="Deny" 或旧版 allowOverride="false" 的位置标记显式设置。
从那里,我在 Google 上搜索并发布帖子说此配置部分需要解锁。所以我运行 appcmd.exe 来解锁它,但我从 appcmd.exe 收到错误:
C:\Windows\System32\inetsrv>appcmd.exe 设置配置-section:system.webserver/serverruntime/uploadreadaheadsize:1048576 /commit:apphost ERROR (message:Unknown config section "system.webserver/serverruntime/uploadreadaheadsize:1048576 "。替换为 ? 寻求帮助。)
我在 64 位记事本中打开并修改了它:
<section name="serverRuntime" overrideModeDefault="Allow" />
首先,允许它被覆盖是否明智?如果没有,有什么替代方案?如果它被覆盖,在我的 web.config 中设置它以使 uploadreadaheadsize 大于默认值有什么潜在问题?一个网站提到了 DoS 攻击的可能性。
【问题讨论】:
【参考方案1】:我建议改为只为需要这种功能的站点设置它,您可以使用 AppCmd 轻松做到这一点,这里是启用它的语法,例如默认网站:
appcmd.exe set config "Default Web Site" -section:system.webServer/serverRuntime /uploadReadAheadSize:"1048576" /commit:apphost
服务器运行时允许您设置取决于服务器的其他一些功能(例如,如果它托管 3rd 方站点或其他不受信任的内容),您可能不希望它们允许这样做,所以不要委托它(解锁)有道理。
【讨论】:
我试过了,但它说配置部分不存在,是的,站点名称是正确的。 您是否复制/粘贴了上面的确切命令,它在我的 Windows 7 机器和 Server 2008 R2 机器上运行良好。 当我复制粘贴它时有效。网上的例子没有1048576左右的引号。太好了。像我提到的那样设置更高的陷阱的任何输入...... DoS?一篇文章提到,如果提高了此设置,则始终协商证书以避免 DoS。以上是关于IIS7、SSL 和“页面未显示,因为请求实体太大。”的主要内容,如果未能解决你的问题,请参考以下文章
上传报告失败 - HTTP 代码 413:页面未显示,因为请求实体太大