在 Web Api OWIN 自托管中增加请求 header 限制

Increase request header limit in Web Api OWIN self host

我有一个 Web Api 2 应用程序托管在 Service Fabric 中,它使用 Microsoft.AspNet.WebApi.OwinSelfHost 来托管服务。我的 Startup class 非常典型:

public static class Startup
{
    public static void ConfigureApp(IAppBuilder app)
    {
        var config = new HttpConfiguration();

        config.MapHttpAttributeRoutes();
        // ...

        app.UseWebApi(config);
    }
}

服务 farbric 服务正在其 CreateServiceInstanceListeners() 方法中启动网络侦听器:

protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
{
    return new[]
    {
        new ServiceInstanceListener(serviceContext => new OwinCommunicationListener(Startup.ConfigureApp, serviceContext, "WebApiEndpoint"))
    };
}

OwinCommunicationListener 是一个服务结构侦听器,它最终将启动 Web 服务器:

public Task<string> OpenAsync(CancellationToken cancellationToken)
{
    // ...
    WebApp.Start(this.listeningAddress, appBuilder => this.startup(appBuilder)));

    return Task.FromResult(this.publishAddress);
}

我 运行 遇到一些请求的问题,我试图通过请求 headers 传递大量数据。我似乎达到了极限,因为我的请求被拒绝了,原因如下:

Bad Request - Request Too Long HTTP Error 400. The size of the request headers is too long.

有没有办法配置自托管网站 api 以增加请求的限制 headers?

肯定有办法增加自托管网站 API header 长度。

但是你真的想做吗?您很可能最终会与更多配置(其他 Web 服务器、防火墙、负载平衡器、API 客户端等)作斗争。

不涉及在请求 header 中发送大量数据的适当架构将使您将来的生活更加轻松。