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

ASP.NET上传大小限制修改无效,报Maximum request length exceeded错误

解决ASP.NET上传时“Maximum request length exceeded”错误的完整方案

我之前也碰到过一模一样的问题!光照搬技术资料里的一两行配置确实经常踩坑,得把几个关键环节都盯紧,给你列一下最容易遗漏的排查点:

1. 检查Web.config里的两个核心配置节点

很多人只加了httpRuntime却忘了IIS层面的requestLimits,这俩得配合着来:

传统ASP.NET核心配置(system.web节点)

这个是ASP.NET框架本身的请求长度限制,单位是KB,比如设置100MB的话就是1024*100=102400,同时建议加长超时时间避免上传超时:

<configuration>
  <system.web>
    <httpRuntime maxRequestLength="102400" executionTimeout="3600" />
  </system.web>
</configuration>

IIS请求筛选配置(system.webServer节点)

这个是IIS服务器层面的内容长度限制,单位是字节,同样100MB的话就是1024*1024*100=104857600,必须和上面的配置值对应:

<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="104857600" />
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

⚠️ 注意:千万别搞混单位!很多人就是这里单位错配,导致配置完全不生效。

2. 控制器Action的特性限制(针对MVC/Web API)

如果你的上传逻辑写在MVC控制器或者Web API的Action里,还要在对应方法上额外添加请求大小限制特性:

[HttpPost]
[RequestSizeLimit(104857600)] // 100MB,单位字节
public ActionResult UploadFile(HttpPostedFileBase file)
{
    // 你的上传逻辑代码
}

如果是测试环境想临时取消限制(不建议生产环境用),可以用[DisableRequestSizeLimit]替代上面的特性。

3. IIS服务器层面的全局配置检查

有时候Web.config的配置会被IIS站点的全局设置覆盖,手动确认一下:

  • 打开IIS管理器,找到你的目标站点
  • 点击“请求筛选”功能,右侧选择“编辑功能设置”
  • 确认“最大允许内容长度”的值和Web.config里的maxAllowedContentLength完全一致

4. 表单上传的必要属性

如果是用HTML表单提交文件,务必确保表单标签加了enctype="multipart/form-data":

<form action="/Upload/File" method="post" enctype="multipart/form-data">
    <input type="file" name="file" />
    <button type="submit">上传文件</button>
</form>

虽然这个不直接触发长度错误,但缺少它会导致文件无法正确解析提交。

5. 别忘了重启应用池/IIS

改完Web.config或者IIS配置后,一定要重启对应的应用池或者整个IIS!我当初就是改完没重启,白折腾了半小时😂

你按这个顺序排查下来,应该就能解决问题了,大概率是某个配置漏加或者单位搞错了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:43:47