You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# MVC上传超3MB文件报System.Web.HttpException错误求助

解决C# MVC文件上传超过3MB报错的问题

我来帮你排查这个「Maximum request length exceeded」的问题——这个错误在ASP.NET MVC的文件上传场景里确实很常见,虽然你已经配置了maxRequestLength和maxAllowedContentLength,但可能是一些细节没注意到,下面是几个关键的排查方向:

1. 确认配置节点的层级是否正确

你给出的配置片段可能存在节点位置错误的问题,这两个关键配置分别属于不同的父节点,必须放在正确的位置才能生效:

正确的web.config结构应该是这样的:

<configuration>
  <!-- maxRequestLength 属于 system.web 节点,单位是KB -->
  <system.web>
    <httpRuntime 
      maxRequestLength="1048576" 
      requestValidationMode="2.0" 
      enableVersionHeader="false" 
      targetFramework="4.5" />
  </system.web>

  <!-- maxAllowedContentLength 属于 system.webServer/security/requestFiltering,单位是字节 -->
  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="1073741824" />
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

你可以对比自己的web.config,确保httpRuntime在<system.web>下,requestFiltering在<system.webServer>下,层级错了配置根本不会生效。

2. 检查是否存在子目录web.config的覆盖

如果你的上传功能所在的控制器/页面位于站点的某个子目录下,子目录中的web.config可能会覆盖根目录的配置。比如子目录里的httpRuntime设置了更小的maxRequestLength,就会导致大文件上传失败,建议检查所有相关路径下的web.config文件。

3. 验证IIS请求筛选的全局设置

有时候IIS的全局请求筛选设置会覆盖web.config的配置,你可以这样检查:

  • 打开IIS管理器,找到你的目标站点
  • 双击「请求筛选」功能
  • 在右侧操作栏点击「编辑功能设置」
  • 查看「最大允许内容长度」是否和你web.config里的maxAllowedContentLength数值一致(单位是字节),如果不一致,改成相同的数值即可

4. 重启应用池或IIS

修改web.config后,有时候需要重启对应的应用池才能让配置生效,不要只刷新页面——右键点击你的站点应用池,选择「重启」,再测试大文件上传。

5. 排查第三方上传组件的限制

如果你是用了第三方上传组件(比如jQuery File Upload之类的),这些组件可能有自己的文件大小限制配置,需要单独检查组件的参数,确保它的大小限制不小于你设置的服务器端限制。

按照上面的步骤排查下来,应该就能解决大文件上传的问题了。

内容的提问来源于stack exchange,提问作者LeoNegi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:34:47