132

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

sytem.web中,您有带有maxRequestLength的http 运行时节点。在system.webServer中,您有requestLimitsmaxAllowedContentLength

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

4

2 回答 2

203

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

(我从http://forums.iis.net/t/1169846.aspx中挑选了这个——归功于它到期的地方。)

您可以通过编辑相应的 web.config 文件将两者设置为特定站点的本地,甚至是站点内的文件夹。如果文件(好吧,请求)长度小于 maxAllowedContentLength 但大于 maxRequestLength,用户将获得您的标准 (ASPX) 错误页面(如果有)。如果反过来,他会得到一个 IIS 错误页面。出于这个原因,您可能希望将 maxAllowedContentLength 设置为一个非常大的值(仅针对此网站/文件夹),然后将限制值设置为 maxRequestLength。

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

于 2011-06-24T19:10:38.783 回答
23

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

于 2011-08-25T19:41:25.193 回答