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

C# MVC Web API本地可下载JSON文件,服务器部署后报错求助

解决IIS中Web API大JSON响应下载失败问题

针对你遇到的问题,IIS确实有多个与响应/请求大小相关的设置,是导致大JSON文件下载失败的常见原因,以下是具体调整方案及排查方向:

1. 调整IIS请求筛选的最大内容长度

这是IIS层面直接限制请求/响应内容大小的核心设置:

  • 打开IIS管理器,定位到目标站点 → 功能视图中选择「请求筛选」
  • 右侧操作栏点击「编辑功能设置」,修改「最大内容长度(字节)」:默认值为30000000字节(约28.6MB),如果你的JSON文件超过这个阈值就会触发错误。可根据实际需求调大,例如设为1073741824(对应1GB)。
  • 也可直接在项目的Web.config中添加配置:
    <system.webServer>
      <security>
        <requestFiltering>
          <requestLimits maxAllowedContentLength="1073741824" />
        </requestFiltering>
      </security>
    </system.webServer>
    

2. 配置ASP.NET传统项目的httpRuntime限制

如果你的Web API基于传统ASP.NET(非Core),还需调整Web.config中<system.web>节点的参数:

<system.web>
  <httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
</system.web>
  • maxRequestLength单位为KB,示例值对应1GB,需确保该值乘以1024后不超过第一步中maxAllowedContentLength的字节数。
  • executionTimeout用于延长请求处理超时时间,避免大文件生成/传输过程中超时。

3. ASP.NET Core项目的大小限制配置

若使用ASP.NET Core,需在启动配置中添加请求/响应限制:

// .NET 6+ Program.cs
builder.Services.Configure<FormOptions>(options =>
{
    options.MultipartBodyLengthLimit = 1073741824; // 1GB
});

app.Use(async (context, next) =>
{
    var sizeFeature = context.Features.Get<IHttpMaxRequestBodySizeFeature>();
    if (sizeFeature != null)
    {
        sizeFeature.MaxRequestBodySize = 1073741824;
    }
    await next();
});

同时建议启用响应流式传输,避免一次性将大JSON加载到内存,还能绕过部分内存相关限制:

// API控制器示例
public async Task<IActionResult> DownloadLargeJson()
{
    // 从数据源获取流式JSON内容
    var jsonStream = await GetLargeJsonStreamFromSource();
    return File(jsonStream, "application/json", "data.json");
}

4. 排查IIS快速失败保护

若站点短时间内触发多次错误,IIS的快速失败保护可能会暂时禁用服务:

  • 进入站点「高级设置」→「进程模型」,调整「失败次数」和「重置间隔」,或临时关闭该功能以排查问题。

额外建议:开启详细错误日志

为了更精准定位问题,可开启IIS详细错误:

  • 站点 → 错误页 → 右侧「编辑功能设置」→ 选择「详细错误」,这样用户会收到具体错误信息(而非通用的"An error has occurred"),便于快速定位是大小限制、内存不足还是其他代码异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 16:43:24