在 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 中发送大量数据的适当架构将使您将来的生活更加轻松。
我有一个 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 中发送大量数据的适当架构将使您将来的生活更加轻松。