在更改上传允许的最大文件大小时,我偶然发现了这两个设置。
在 sytem.web 中,您拥有带 maxRequestLength 的 http运行时节点。 在 system.webServer 中,您拥有 requestLimits maxAllowedContentLength 。
现在哪个优先于另一个?我们需要设置两个或者是最后一个(IIS7的那个)足够吗?
答案 0 :(得分:187)
maxRequestLength表示ASP.NET支持的最大请求大小,而maxAllowedContentLength指定IIS支持的请求中的最大内容长度。所以你需要设置两个以便上传大文件:较小的文件“优先”。
(我从http://forums.iis.net/t/1169846.aspx选择了这个 - 信用到期。)
您可以通过编辑相应的web.config文件,将两者设置为特定站点的本地站点,甚至是站点中的文件夹。如果文件(well,request)长度小于maxAllowedContentLength但超过maxRequestLength,则用户将获得标准(ASPX)错误页面(如果有)。如果是相反的话,他会得到一个IIS错误页面。因此,您可能希望将maxAllowedContentLength设置为一个非常大的值(仅适用于此网站/文件夹),然后将限制值设置为maxRequestLength。
最后,请记住maxRequestLength是KB,而maxAllowedContentLength是BYTES!
答案 1 :(得分:19)
简短而甜蜜的回答是,两者中较小的一个将优先考虑。尽管如此 - 在我看来,建议将maxRequestLength设置为两者中的较小者,因为如果超过Global.asax的Application_Error事件,您可以捕获异常。如果超过maxAllowedContentLength,则IIS将首先处理它而不是ASP.NET,这使得处理代码变得更加棘手。