哪个获得优先权,maxRequestLength或maxAllowedContentLength?

时间:2011-06-13 07:01:23

标签: asp.net file-upload web-config maxrequestlength

在更改上传允许的最大文件大小时,我偶然发现了这两个设置。

sytem.web 中,您拥有带 maxRequestLength http运行时节点。 在 system.webServer 中,您拥有 requestLimits maxAllowedContentLength

现在哪个优先于另一个?我们需要设置两个或者是最后一个(IIS7的那个)足够吗?

2 个答案:

答案 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,这使得处理代码变得更加棘手。