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

问题描述:

在更改上传的最大允许文件大小时,我偶然发现了这两个设置。哪个获得优先级,maxRequestLength或maxAllowedContentLength?

sytem.web你有的maxRequestLengthHTTP运行时节点。 在system.webServer你有requestLimitsmaxAllowedContentLength

现在哪个优先于其他?我们是否需要设置或者是最后一个(IIS7的)足够?

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!

简短而甜蜜的回答是,两者中的较小者优先。尽管如此,我认为最好将maxRequestLength设置为两者中较小的一个,因为如果超出Global.asax的Application_Error事件,您可以捕获异常。如果超过maxAllowedContentLength,则首先IIS将处理它而不是ASP.NET,这使得在代码中处理变得更加棘手。