解决IIS7大文件上传限制:配置maxAllowedContentLength和maxRequestLength

需积分: 16 1 下载量 93 浏览量 更新于2024-09-10 收藏 3KB TXT 举报
"在IIS7环境中进行大数据量处理时,遇到文件上传超过30MB后服务器返回404.13错误的情况。这个错误提示表明请求过滤模块被配置为拒绝超过请求内容长度的请求。解决这个问题的关键在于修改IIS配置文件,特别是`applicationhost.config`和`web.config`中的`maxAllowedContentLength`和`maxRequestLength`参数。 首先,让我们理解这两个设置的作用。`maxAllowedContentLength`是用于限制单个HTTP请求的主体内容(即上传文件)的最大大小,单位通常是字节。在默认情况下,如果这个值过低,大文件上传将被拒绝,从而触发404.13错误,如你所见,提示内容指明应检查`C:\Windows\System32\inetsrv\config`目录下的`applicationhost.config`文件中的相关配置。 在`<system.webServer>`部分找到`<security>`标签,然后在`<requestFiltering>`下,你应该可以看到`<requestLimits>`元素,其`maxAllowedContentLength`属性应该被设置为一个足够大的数值来允许你处理较大的文件。例如,如果需要支持30MB以上的文件,可以将其设置为40000000 bytes(即40MB),但需确保此值能够满足实际需求。 如果你发现`applicationhost.config`中的`maxAllowedContentLength`并未设置或者设置值过低,你需要修改它。可以使用`appcmd`命令行工具来调整,例如: ```bash appcmd set config -section:requestFiltering -site:Default Web Site -section:RequestFiltering -parameter:maxAllowedContentLength:40000000 ``` 确保替换`Default Web Site`为你网站的名称。另外,如果`applicationhost.config`不允许修改,可以通过`web.config`文件进行设置。在`web.config`中找到`<system.webServer>`部分,并将`overrideModeDefault`属性从`Deny`改为`Allow`,以允许覆盖`applicationhost.config`中的配置: ```xml <sectionGroup name="system.webServer"> <section name="requestFiltering" overrideModeDefault="Allow"> <!-- ... 其他配置 ... --> </section> </sectionGroup> ``` 完成这些调整后,IIS7应该能够正确处理大于30MB的大文件上传,而不会返回404.13错误。然而,一定要根据实际应用需求适当地调整这些设置,避免可能的安全风险。同时,定期监控和测试以确保新配置的稳定性和性能。"