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

ASP.NET MVC5:如何通过web.config为特定页面修改上传限制

仅通过web.config为特定上传Action提升文件大小限制

可以实现,但你之前的配置方向有误——web.config的<location>标签是针对请求的目标URL生效的,而非分部视图或包含它的页面路径。上传请求是发送到处理上传的控制器Action,而非分部视图所在的页面,所以需要把<location>指向该Action的路由路径,而非视图路径。

具体配置步骤

  1. 保留根节点下的默认20MB限制(确保其他页面不受影响):
<configuration>
  <!-- 全局默认配置:20MB -->
  <system.web>
    <httpRuntime maxRequestLength="20480" /> <!-- 单位:KB,20*1024=20480 -->
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="20971520" /> <!-- 单位:字节,20*1024*1024=20971520 -->
      </requestFiltering>
    </security>
  </system.webServer>
  1. 添加<location>节点,针对处理上传的控制器Action单独配置100MB限制:
    假设你的上传Action路由是/FileUpload/Upload(对应FileUploadController的Upload方法),则添加如下配置:
<!-- 针对特定上传Action的100MB限制 -->
  <location path="FileUpload/Upload">
    <system.web>
      <httpRuntime maxRequestLength="102400" /> <!-- 100*1024=102400 KB -->
    </system.web>
    <system.webServer>
      <security>
        <requestFiltering>
          <requestLimits maxAllowedContentLength="104857600" /> <!-- 100*1024*1024=104857600 字节 -->
        </requestFiltering>
      </security>
    </system.webServer>
  </location>
</configuration>

关键说明

  • <location>的path属性必须和上传请求的实际URL完全匹配:如果你的Action有自定义路由(比如带前缀或参数),需要调整path值,比如路由是/Api/File/Upload,则path="Api/File/Upload"。
  • 必须同时配置maxRequestLength(ASP.NET框架层面的限制)和maxAllowedContentLength(IIS层面的限制),两者缺一不可,且单位要对应转换正确。
  • 之前配置视图路径无效的原因:访问包含分部视图的页面是GET请求,路径对应页面的路由,而上传是POST请求到控制器Action的路由,这是两个不同的请求路径,所以视图路径的<location>配置不会作用于上传请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:45:11