上传6MB文件报Maximum request length exceeded错误排查
解决方案
- 你遗漏了
<system.web>节点下httpRuntime的maxRequestLength属性配置,这是ASP.NET层面的请求长度限制,默认值为4096(单位:KB,即4MB),你的6MB文件超过了默认阈值,所以仍然会触发报错。 - 你已经配置的
maxAllowedContentLength属于IIS层面的请求长度限制(单位:字节),两个层级的配置需要同时调整才能正常生效。
完整配置示例如下:
<configuration> <!-- 新增/修改ASP.NET层面配置 --> <system.web> <!-- maxRequestLength单位为KB,此处设置为10MB,可按需调整 --> <!-- executionTimeout为请求超时时间,单位为秒,大文件上传建议同步调大 --> <httpRuntime maxRequestLength="10240" executionTimeout="3600" /> </system.web> <!-- 你原有已配置的IIS层面配置 --> <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="2147483648" /> </requestFiltering> </security> </system.webServer> </configuration>
注意两个配置的单位差异,需保持逻辑一致:如果
maxRequestLength换算后的字节数大于maxAllowedContentLength,会优先触发IIS层面的报错;反之则优先触发ASP.NET层面的报错。
如果你是在IIS子应用下部署该站点,需要确认父级站点的Web.config没有配置更小的请求长度限制覆盖子站点配置。
内容的提问来源于stack exchange,提问作者Burdy
相关产品推荐
相关产品推荐

