超出最大请求长度
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 >
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
【讨论】:
我做了完全一样的建议,并在我的问题中提到。我无法让它工作 你的文件大小是多少? 我相信它小于 4-5 MB,可能是它超时了,除了这个之外的其他类似文件下载正常 @Rinu 确保您的配置文件格式正确,如我的帖子中所示。并尝试设置 executionTimeout="240" 值。以上是关于超出最大请求长度的主要内容,如果未能解决你的问题,请参考以下文章