IIS7,SSL和"由于请求实体太大,因此未显示该页面."

nic*_*ine 7 asp.net iis-7 app-config web-config

我们在64位计算机上的IIS7上通过SSL运行ASP.NET应用程序.

现在我发现有几篇文章提到要解决这个错误,我需要修改一下system.webServer/serverRuntime/uploadReadAheadSize.精细.我尝试过appcmd.exe,然后只需手动编辑我的web.config来设置:

    other config settings

    -->
    <serverRuntime uploadReadAheadSize="1048576" />
  </system.webServer>
Run Code Online (Sandbox Code Playgroud)

但是,当我在网站的web.config中设置它时,我收到此错误:

此配置部分不能在此路径中使用.当该部分被锁定在父级别时会发生这种情况.锁定是默认情况下(overrideModeDefault ="Deny"),或由locationMode ="Deny"或遗留allowOverride ="false"的位置标记显式设置.

从那里,我谷歌搜索和帖子说,这个配置部分需要解锁.所以我运行appcmd.exe来解锁它,但是我从appcmd.exe收到错误:

C:\ Windows\System32\inetsrv> appcmd.exe set config -section:system.webserver/serverruntime/uploadreadaheadsize:1048576/commit:apphost ERROR(消息:未知配置节"system.webserver/serverruntime/uploadreadaheadsize:1048576".替换用?寻求帮助.)

我在64位记事本中打开并修改它:

<section name="serverRuntime" overrideModeDefault="Allow" />
Run Code Online (Sandbox Code Playgroud)

首先,让它被覆盖是明智的吗?如果没有,有哪些替代方案?如果它被覆盖,在我的web.config中设置它的潜在问题是什么,以便uploadreadaheadsize大于默认值?一个站点提到了DoS攻击的可能性.

Car*_*res 7

我建议只是为需要这种功能的网站设置它,你可以使用AppCmd轻松地做到这一点,这里是启用默认网站的语法:

appcmd.exe set config "Default Web Site" -section:system.webServer/serverRuntime /uploadReadAheadSize:"1048576"  /commit:apphost
Run Code Online (Sandbox Code Playgroud)

服务器运行时允许您设置一些取决于服务器的其他功能(如果它托管第三方站点或其他不可信内容),您可能不希望为它们提供这些功能,因此不委托它(解锁)是有意义的.