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

.NET Core服务调用API报HTTP Error 400:请求头过长求助

问题分析与解决方案

问题概述

3个.NET 6控制台服务每30秒调用.NET Core 3.1 API控制器,运行一段时间后触发HTTP Error 400. The size of the request headers is too long错误,但日志显示请求仅包含Content-Type头,且配置Kestrel请求头大小限制后无效果。


可能原因与解决步骤

1. IIS托管场景:优先修改IIS请求限制

若API部署在IIS上,Kestrel的配置会被IIS的反向代理拦截,需直接调整IIS的请求头限制:

  • 在项目web.config中添加/修改节点:
<system.webServer>
  <security>
    <requestFiltering>
      <!-- 设置请求头总大小为1MB -->
      <requestLimits maxRequestHeadersTotalSize="1048576" />
    </requestFiltering>
  </security>
</system.webServer>
  • 若需服务器级全局配置,修改C:\Windows\System32\inetsrv\config\applicationHost.config中对应站点的上述节点。

2. HttpClient自动Cookie累积

.NET的HttpClient默认自动管理Cookie容器,若服务端每次请求返回新的Set-Cookie,多次请求后Cookie会在请求头中累积膨胀。可通过两种方式解决:

  • 禁用自动Cookie管理:
var handler = new HttpClientHandler { UseCookies = false };
var httpClient = new HttpClient(handler);
  • 每次请求前清空Cookie容器:
// 若复用HttpClientHandler,每次请求前重置Cookie容器
handler.CookieContainer = new CookieContainer();

3. 反向代理(Nginx/Apache)的限制

若API前端有反向代理,需调整代理的请求头大小配置:

  • Nginx:在站点配置或nginx.conf中添加:
client_header_buffer_size 16k;
large_client_header_buffers 4 16k;
  • Apache:在httpd.conf或.htaccess中添加:
LimitRequestFields 100
LimitRequestFieldSize 8192

4. 确保Kestrel配置正确生效

在.NET Core 3.1中,需确认Kestrel配置未被覆盖,可直接在Program.cs中配置:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseKestrel(options =>
            {
                options.Limits.MaxRequestHeadersTotalSize = 1024 * 1024; // 1MB
            });
            webBuilder.UseStartup<Startup>();
        });

额外排查建议

开启更详细的请求头日志,确认实际发送的请求内容:

  • 客户端打印HttpClient.DefaultRequestHeaders的所有项;
  • API端添加中间件捕获完整请求头:
app.Use(async (context, next) =>
{
    foreach (var header in context.Request.Headers)
    {
        Console.WriteLine($"{header.Key}: {header.Value}");
    }
    await next();
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 13:36:05