超出最大请求长度

Posted

技术标签:

【中文标题】超出最大请求长度【英文标题】:Maximum request length exceeded 【发布时间】:2019-12-18 09:50:12 【问题描述】:

我收到最大请求长度超出错误,尝试从站点下载文件(在 asp.net 中开发)。我确实尝试了下面链接中建议的解决方案 Maximum request length exceeded.

但我仍然有同样的错误。

我使用的是 8.5 [1]:https://i.stack.imgur.com/pCLEs.png 我在 web.conf 中添加了以下标签

   <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="1073741824" />
    </requestFiltering>
      </security>

当我添加以下标签时,它会抛出“500 - 内部服务器错误”。

 <httpRuntime maxRequestLength="1048576" />

但似乎没有任何效果。

【问题讨论】:

【参考方案1】:

IIS 的默认最大文件上传大小为 4MB。上传超过 4MB 的文件会报错“超出最大请求长度”。

machine.config 文件设置为 4MB 默认限制。我们可以使用 web.config 中的以下代码对其进行更改。

< system.web >
  < httpRuntime executionTimeout="240" maxRequestLength="20480" / >
< /system.web >

对于 IIS 7 及更高版本,我们可以修改默认上传限制。您需要将以下代码添加到 web.config。

< system.webServer >
      < security >
           < requestFiltering >
                < requestLimits maxAllowedContentLength="3000000000" / >
           < /requestFiltering >
      < /security >
< /system.webServer >

ma​​xAllowedContentLength字节 为单位估算 ma​​xRequestLength千字节 为单位估计。 maxRequestLength 的默认值为 4096 (4mb)。最大值为 2,147,483,647 maxAllowedContentLength 的默认值为 30,000,000(大约 30mb)。最大值为 4,294,967,295。

您可以根据文件大小设置值。上面的 maxRequestLength 值为 20MB 和 maxAllowedContentLength 30MB。也不要忘记设置执行超时或连接超时值。

connectionTimeout 指定 IIS 在断开被视为非活动的连接之前等待的时间(以秒为单位)。

executionTimeout 指定请求在被 ASP.NET 自动关闭之前允许执行的最大秒数。

参考链接:

https://docs.microsoft.com/en-us/iis/configuration/system.applicationHost/sites/siteDefaults/limits#005

https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-4.0/e1f13641(v=vs.100)?redirectedfrom=MSDN#Anchor_0

【讨论】:

我做了完全一样的建议,并在我的问题中提到。我无法让它工作 你的文件大小是多少? 我相信它小于 4-5 MB,可能是它超时了,除了这个之外的其他类似文件下载正常 @Rinu 确保您的配置文件格式正确,如我的帖子中所示。并尝试设置 executionTimeout="240" 值。

以上是关于超出最大请求长度的主要内容,如果未能解决你的问题,请参考以下文章

uSQL 超出最大请求长度

如何解决“超出最大请求长度”异常?

在大型数据网格中分页时“超出最大请求长度”[重复]

WebApi 2 超出最大请求长度

IIS 6“超出最大请求长度。”在 Global.asax 之前触发 [重复]

s-s-rS 上传 14Mb 报告不起作用(超出最大请求长度。)