哪个获得优先级,maxRequestLlength 还是 maxAllowedContentLlength?

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

Sytem.web中,有 Http 运行时节点和 MaxRequestLlength节点。 在 System.webServer中有 请求限制最大允许内容长度

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

54680 次浏览

MaxRequestLlength 指示 ASP.NET 支持的最大请求长度,而 maxAllowedContentLlength 指定 IIS 支持的请求中的最大内容长度。因此,为了上传大文件,需要同时设置这两个值: 较小的文件“优先”。

(这是我从 http://forums.iis.net/t/1169846.aspx杂志上看到的,应该归功于它。)

通过编辑适当的 web.config 文件,可以将两者都设置为特定站点的本地文件夹,甚至可以将其设置为站点内的文件夹。如果文件(请求)长度小于 maxAllowedContentLlength 但大于 maxRequestLlength,用户将获得标准(ASPX)错误页面(如果有的话)。如果正好相反,他会得到一个 IIS 错误页面。因此,您可能需要将 maxAllowedContentLlength 设置为一个非常大的值(仅针对此网站/文件夹) ,然后将限制值设置为 maxRequestLlength。

最后,请记住 maxRequestLlength 是 KB,而 maxAllowedContentLlength 是 BYTES!

简短而甜蜜的回答是,两者中较小的那个将优先考虑。但是一个建议——在我看来,最好将 maxRequestLlength 设置为两者中较小的一个,因为在 Global.asax 的 Application _ Error 事件中可以捕捉到一个异常,如果它被超过的话。如果超过 maxAllowedContentLlength,则第一个 IIS 将处理它,而不是 ASP.NET,这使得在代码中处理它变得更加棘手。