【问题标题】:Increase request header limit in Web Api OWIN self host增加 Web Api OWIN 自主机中的请求标头限制
【发布时间】:2018-02-02 09:33:45
【问题描述】:

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

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

        config.MapHttpAttributeRoutes();
        // ...

        app.UseWebApi(config);
    }
}

service 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);
}

我在尝试通过请求标头传递大量数据时遇到了一些请求的问题。我似乎达到了极限,因为我的请求被以下内容拒绝:

错误请求 - 请求太长 HTTP 错误 400。请求标头的大小太长。

有没有办法配置自托管 web api 来增加请求标头的限制?

【问题讨论】:

    标签: c# asp.net-web-api owin self-host-webapi


    【解决方案1】:

    肯定有办法增加自托管 Web API 标头长度。

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

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

    【讨论】:

    • 这是一个大型 SAML 令牌。
    • 如何在标头中保留令牌的哈希值并在正文中移动实际的令牌?
    • 据我所知,请求正文的限制是相同的。将它移到身体不会改变任何东西。
    • 你确定吗?默认值为 64 兆。 msdn.microsoft.com/en-us/library/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多