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:页面未显示,因为请求实体太大

IIS 8.5 请求实体太大在 IE 11 中发生,但在 Chrome 中没有

2008申请SSL证书,IIS7怎么申请SSL安全证书

如何在IIS7安装多域名SSL证书

2008申请SSL证书,IIS7怎么申请SSL安全证书

如何从命令提示符将 SSL 证书分配给 IIS7 站点