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

部署在Azure WebApp上的.NET 6应用上传大文件报HTTP 413错误

Azure上.NET 6应用大文件上传失败的解决方案

问题背景

向部署在Azure的.NET 6应用上传38MB大文件时触发**413 Request Entity Too Large(请求实体过大)**错误,本地环境通过以下两种配置可解决,但部署到Azure后失效:

已尝试的本地有效配置

  • 方案1:Program.cs中配置服务器请求限制
    builder.Services.Configure<KestrelServerOptions>(options =>
    {
        options.Limits.MaxRequestBodySize = long.MaxValue;
    });
    builder.Services.Configure<IISServerOptions>(options =>
    {
        options.MaxRequestBodySize = long.MaxValue;
    });
    
  • 方案2:Startup.cs中配置表单选项
    services.Configure<FormOptions>(options =>
    {
        options.MultipartBodyLengthLimit = long.MaxValue;
    });
    

Azure环境下的必做配置

Azure App Service存在平台级的额外限制,需补充以下配置才能生效:

1. 添加/修改web.config

针对Azure App Service默认的IIS托管环境,在web.config中添加请求长度限制:

<configuration>
  <system.web>
    <!-- 单位为KB,40960对应40MB,可按需调整 -->
    <httpRuntime maxRequestLength="40960" />
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- 单位为字节,41943040对应40MB -->
        <requestLimits maxAllowedContentLength="41943040" />
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

2. 配置Azure App Service应用设置

在Azure门户进入你的App Service,依次打开配置 > 应用设置,添加以下配置项:

  • 名称:MAX_REQUEST_BODY_SIZE,值设为41943040(或更大值,对应40MB)

3. 验证接口特性配置

确保上传接口未设置过小的请求限制,可添加RequestSizeLimit特性放宽限制:

[HttpPost("upload")]
[RequestSizeLimit(long.MaxValue)]
public async Task<IActionResult> Upload(IFormFile file)
{
    // 你的上传逻辑
}

说明

本地环境仅需代码层面配置即可生效,但Azure App Service受IIS平台限制和应用服务全局设置约束,必须同时调整代码、web.config和Azure门户设置,才能彻底解除大文件上传限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 05:03:12