【问题标题】:Which gets priority, maxRequestLength or maxAllowedContentLength?哪个优先,maxRequestLength 或 maxAllowedContentLength?
【发布时间】:2011-06-13 07:01:22
【问题描述】:

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

sytem.web 中有 http 运行时 节点和 ma​​xRequestLength。 在 system.webServer 中有 requestLimitsma​​xAllowedContentLength

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

【问题讨论】:

    标签: asp.net file-upload web-config maxrequestlength


    【解决方案1】:

    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"。我应该在这里更改哪个长度。请提出建议。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      相关资源
      最近更新 更多