IIS Express 的默认限制 <limits>

Default Limits <limits> for IIS Express

我需要测试一个可以接受非常大文件的文件上传组件。我想在我的开发环境中进行本地测试,但由于我使用 IIS Express 而不是 IIS 7,我不确定在哪里进行全局更改。

在 IIS 7 中,无法通过 web.config 进行更改,但需要通过 IIS 管理器工具进行更改。有关示例,请参阅 this IIS article

有谁知道如何使用 IIS Express 进行相同的全局更改(在 Visual Studio 2013 年)?

您可以在 web.config

中使用它
<system.webServer>
        <security>
            <requestFiltering>
                <requestLimits maxAllowedContentLength="524288000"/>
            </requestFiltering>
        </security>
</system.webServer>

如果建议的 web.config 更改 ppascualv 不起作用,请尝试将其放入 IIS Express applicationhost.config,可在

%userprofile%\my documents\iisexpress\config\applicationhost.config

低于

<system.webServer>

<security>
    <requestFiltering>
        <requestLimits maxAllowedContentLength="524288000"/>
    </requestFiltering>
</security>

这应该将其设置为全局,除非来自应用程序的 web.config 覆盖它。

基本上web.configmaxRequestLengthmaxAllowedContentLength都需要设置才能上传文件

  • maxRequestLength 表示ASP.NET
  • 支持的最大文件上传大小
  • maxAllowedContentLength 这指定了 IIS 支持的请求中内容的最大长度

注意:maxRequestLength 以千字节为单位 & maxAllowedContentLength 以字节为单位

默认情况下,Machine.config 配置为接受最大 4096 KB (4 MB) 的 HTTP 请求,它反映在您的所有 ASP.NET 应用程序中。您可以直接更改 Machine.config 文件,也可以只更改您想要

的应用程序的 Web.config 文件
<system.webServer>
        <security>
            <requestFiltering>
                <requestLimits maxAllowedContentLength="524288000"/>
            </requestFiltering>
        </security>
</system.webServer>

 <system.webServer>
   <security>
      <requestFiltering>
         <requestLimits maxAllowedContentLength="1073741824" />
      </requestFiltering>
   </security>
 </system.webServer>

由于请求 headers 太大,正在努力绕过“400 错误请求”,针对 Visual Studio 2019 的默认 IIS Express 实例,我无法获得 Sarah 的 solution to work, but found that the http.sys settings here 成功了。

具体来说,我在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters 中创建了一个名为 MaxRequestBytes 的 DWORD 注册表值,并将其设置为足够大的值。对我来说,33000 就足够了。同样在同一个地方创建了MaxFieldLength,并设置为33000。必须重新启动计算机才能使设置生效。

至于我的问题的原因,描述的是here。它本质上是由放置在请求 headers 中的身份验证 cookie 引起的。推送到 Azure App Service 工作正常(headers 的限制可能是 32KB),但是对于本地 IIS Express,它连续失败,直到上述修复。

正如其他人已经提到的,您需要修改 applicationhost.config 并放入其中

<security>
    <requestFiltering>
        <requestLimits maxAllowedContentLength="524288000"/>
    </requestFiltering>
</security>

其他人没有提到的是,当您 运行 您的网络应用程序来自 Visual Studio 时, applicationhost.config 在项目根目录中的位置是
.vs\{your_project_name}\config\applicationhost.config 这是您需要修改的文件