首页 > 解决方案 > 超出最大请求长度

问题描述

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

但我仍然有同样的错误。

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

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

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

 <httpRuntime maxRequestLength="1048576" />

但似乎没有任何效果。

标签: asp.netiisiis-6

解决方案


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 >

maxAllowedContentLength字节为单位估计 maxRequestLength字节为单位估计。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


推荐阅读