Увеличьте лимит заголовка запроса на собственном хосте 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 и т. Д.)

Надлежащая архитектура, которая не предусматривает отправку больших объемов данных в заголовках запросов, сделает вашу жизнь намного проще в будущем.

Другие вопросы по тегам