哪个优先级为maxRequestLength或maxAllowedContentLength?


127

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

sytem.web中,您具有带有maxRequestLengthhttp运行时节点。在system.webServer中,您具有带有maxAllowedContentLengthrequestLimits

现在哪个优先于另一个?并且我们需要同时设置两者还是最后一个(IIS7足够)?

Answers:


196

maxRequestLength指示ASP.NET支持的最大请求大小,而maxAllowedContentLength指定IIS支持的请求中的最大内容长度。因此,您需要同时设置两个文件才能上传大文件:较小的文件“具有优先权”。

(我是从http://forums.iis.net/t/1169846.aspx上提取的-归功于此。)

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

最后,请记住maxRequestLength以KB为单位,而maxAllowedContentLength以BYTES为单位!


我的页面上有3个上传控件,其中上传控件的限制为50 MB。因此,我一次上传了总共150 MB的空间,我的配置是maxAllowedContentLength =“ 51200000”&executionTimeout =“ 1200”&maxRequestLength =“ 51200”。我应该在这里更改哪个长度。请提出建议。
尼拉夫·瓦索亚

21

简短而甜美的答案是,两者中较小的优先。虽然有个建议,但我建议将maxRequestLength设置为两者中的较小者,因为如果超出该限制,您可以在Global.asax的Application_Error事件中捕获异常。如果超过maxAllowedContentLength,则IIS将首先处理它而不是ASP.NET,这使得在代码中处理起来更加棘手。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.