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

ASP.NET Core大文件上传接口部署服务器后特性配置不生效求助

大文件上传部署后失败排查配置项

  • Kestrel 服务端全局限制配置
    就算接口加了请求大小特性,如果代码全局配置了Kestrel的请求上限依旧会被拦截,可在Program.cs中添加以下配置:
// .NET 6及以上版本示例
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.ConfigureKestrel(options =>
{
    // 设为null取消全局请求大小限制,也可指定字节数值限制大小
    options.Limits.MaxRequestBodySize = null;
});
  • IIS 托管场景配置
    如果用IIS部署,需要修改站点根目录的web.config文件,添加IIS层面的请求大小限制:
<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- 示例为允许最大2GB请求,单位为字节,可按需调整 -->
        <requestLimits maxAllowedContentLength="2147483648" />
      </requestFiltering>
    </security>
  </system.webServer>
  <system.web>
    <!-- 适配旧版IIS,单位为KB,示例对应2GB,同时延长执行超时时间 -->
    <httpRuntime maxRequestLength="2097152" executionTimeout="3600" />
  </system.web>
</configuration>

修改后还要检查IIS站点的「请求筛选」功能设置,避免站点级别的配置覆盖web.config规则。

  • Nginx/Apache 反向代理场景配置
    如果用Nginx做反向代理,默认请求大小限制为1M,需要修改Nginx配置文件:
# 可配置在http块全局生效,也可放到server或location块对应站点/接口单独生效
client_max_body_size 2G;
# 延长超时时间,避免大文件上传过程中断连
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;

如果用Apache,修改httpd.conf或者站点.htaccess文件:

# 允许最大2GB请求,单位为字节
LimitRequestBody 2147483648
  • 容器/云服务场景配置
    如果用容器部署,需要检查容器编排工具(如K8s)的Ingress网关请求大小限制,K8s Ingress Nginx同样需要配置client_max_body_size参数。
    如果使用了云厂商的负载均衡、WAF、CDN等中间服务,需要检查对应产品的请求大小限制和上传超时配置,这类边缘网关的限制优先级最高,会直接拦截超阈值请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 07:27:02