如何使用ASP.NET在IIS上查找POST的大小限制?
我有一个web服务,最终用户将上传可能非常大的ZIP档案(一个测试文件超过200MB)。我想主动处理超大文件,优雅地处理大小有限的上传失败 由于web应用程序将部署在客户的机器上,因此我无法轻松确保配置匹配任何固定大小。我已经记录了如何使用appcmd命令为他们设置requestLimits.maxAllowedContentLength值,使其超过30MB的默认值 但我想在web应用程序中处理它;我希望有两件事:如何使用ASP.NET在IIS上查找POST的大小限制?,asp.net,iis,iis-7,Asp.net,Iis,Iis 7,我有一个web服务,最终用户将上传可能非常大的ZIP档案(一个测试文件超过200MB)。我想主动处理超大文件,优雅地处理大小有限的上传失败 由于web应用程序将部署在客户的机器上,因此我无法轻松确保配置匹配任何固定大小。我已经记录了如何使用appcmd命令为他们设置requestLimits.maxAllowedContentLength值,使其超过30MB的默认值 但我想在web应用程序中处理它;我希望有两件事: 要在启动文件上载的页面上显示当前限制,请执行以下操作: 每个文件上载限制为15M
我找到了上面的文章——虽然我可以截获错误,但我一直在浏览器中对Request.Redirect()或Context.RewritePath()进行连接重置,所以它实际上并不比404好。嗯,实际上这是VS2008的调试服务器,而不是IIS。要获取masxAllowed内容,您可以使用此
protected int GetMaxUploadSize()
{
System.Web.Configuration.HttpRuntimeSection httpRuntimeSec = (System.Web.Configuration.HttpRuntimeSection)ConfigurationManager.GetSection("system.web/httpRuntime");
if (httpRuntimeSec != null)
{
return httpRuntimeSec.MaxRequestLength;
}
else
{
return 0;
}
}
还要将此添加到web.config:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1000000" />
</requestFiltering>
</security>
对于第二个问题,我建议您使用客户端应用程序,以便在上传之前验证文件大小,其中一个选项可以是silverlight谢谢,但这是“web.config”设置,除非他们更改,否则我可以控制该设置(我已将其设置为128MB)。我正在寻找IIS设置,默认值为30MB。我了解到,为了避免IIS阻塞,您可以将其添加到您的web.cofig(没有尝试过)中。谢谢,但正如我提到的,我已经将此设置为~128MB。有一个默认为30MB的IIS限制,这就是我想要阅读的内容。