Увеличьте лимит заголовка запроса на собственном хосте Web Api OWIN
У меня есть приложение Web Api 2, размещенное в Service Fabric, которое использует Microsoft.AspNet.WebApi.OwinSelfHost для размещения службы. Мой класс Startup довольно типичный:
public static class Startup
{
public static void ConfigureApp(IAppBuilder app)
{
var config = new HttpConfiguration();
config.MapHttpAttributeRoutes();
// ...
app.UseWebApi(config);
}
}
Сервис Farbric Service запускает веб-слушатель в своем CreateServiceInstanceListeners()
метод:
protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
{
return new[]
{
new ServiceInstanceListener(serviceContext => new OwinCommunicationListener(Startup.ConfigureApp, serviceContext, "WebApiEndpoint"))
};
}
OwinCommunicationListener - это прослушиватель сервисной фабрики, который в конечном итоге запустит веб-сервер:
public Task<string> OpenAsync(CancellationToken cancellationToken)
{
// ...
WebApp.Start(this.listeningAddress, appBuilder => this.startup(appBuilder)));
return Task.FromResult(this.publishAddress);
}
У меня проблема с некоторыми запросами, когда я пытаюсь передать большой объем данных через заголовки запросов. Я, кажется, достигаю предела, потому что мои запросы отклоняются со следующим:
Неверный запрос - запрос слишком длинный HTTP-ошибка 400. Размер заголовков запроса слишком длинный.
Есть ли способ настроить самодостаточно веб-API для увеличения лимита заголовков запросов?
1 ответ
Конечно, должны быть способы увеличить длину заголовка самодостаточного веб-API.
Но вы действительно хотите это сделать? Скорее всего, вы столкнетесь с гораздо большим количеством конфигураций (другие веб-серверы, брандмауэры, балансировщики нагрузки, клиенты API и т. Д.)
Надлежащая архитектура, которая не предусматривает отправку больших объемов данных в заголовках запросов, сделает вашу жизнь намного проще в будущем.