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

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

sytem.web中你有一个带有maxRequestLengthhttp运行时节点。 在system.webServer中,你有requestLimitsmaxAllowedContentLength

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

maxRequestLength指示ASP.NET支持的最大请求大小,而maxAllowedContentLength指定IIS支持的请求中的最大内容长度。 所以你需要设置两个为了上传大文件:较小的“优先”。

(我从http://forums.iis.net/t/1169846.aspx中select了这一点; – 信用卡到期。)

您可以通过编辑相应的web.config文件将它们设置为特定站点本地,甚至可以设置站点内的文件夹。 如果文件(well,request)长度小于maxAllowedContentLength但大于maxRequestLength,则用户将得到标准(ASPX)错误页面(如果有)。 如果相反,他会得到一个IIS错误页面。 因此,您可能希望将maxAllowedContentLength设置为非常大的值(仅适用于此网站/文件夹),然后将限制值设置为maxRequestLength。

最后,请记住,maxRequestLength在KB中,而maxAllowedContentLength在BYTES中!

简短而甜蜜的回答是,两者中的较小者优先。 一个build议的意见,但在我看来,最好设置maxRequestLength是两个较小的,因为你可以捕捉Global.asax的Application_Error事件中的exception,如果超过。 如果超过maxAllowedContentLength,则首先IIS将处理它而不是ASP.NET,这使得在代码中处理更为棘手。