我需要测试一个接受非常大的文件的文件上传组件。我想在我的开发环境中进行本地测试,但由于我使用IIS Express而不是IIS 7,我不确定在哪里进行全局更改。
在IIS 7中,无法通过web.config进行更改,但需要通过IIS管理器工具进行更改。有关示例,请参阅this IIS article。
有没有人知道如何使用IIS Express(在Visual Studio 2013中)进行相同的全局更改?
答案 0 :(得分:4)
如果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覆盖它,否则应将其设置为全局。
答案 1 :(得分:3)
您基本上需要在 web.config maxRequestLength
和maxAllowedContentLength
中设置上传文件。
maxRequestLength
表示ASP.NET支持的最大文件上载大小 maxAllowedContentLength
这指定IIS支持的请求中的最大内容长度。 注意:maxRequestLength
以千字节为单位&amp; 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>
答案 2 :(得分:2)
您可以在web.config
中使用它<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="524288000"/>
</requestFiltering>
</security>
</system.webServer>
答案 3 :(得分:1)
由于请求标头太大而无法解决“ 400 Bad Request”,而与Visual Studio 2019的默认IIS Express实例相对,我无法让Sarah的solution正常工作,但发现http.sys设置here达到了目的。
具体地说,我在HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
内创建了一个名为MaxRequestBytes
的DWORD注册表值,并将其设置为足够大的值。对我来说,33000
就足够了。还在同一位置创建了MaxFieldLength
,并将其设置为33000
。必须重新启动计算机才能使设置生效。
关于我的问题的原因,描述为here。这本质上是由放置在请求标头中的身份验证Cookie引起的。推送到Azure App Service可以很好地工作(标头的限制可能是32KB),但是针对本地IIS Express,它一直失败,直到上述修复为止。