Как изменить ответ веб-сервера http.sys при достижении лимита maxconnection - PullRequest
0 голосов
/ 29 мая 2020

Мы используем веб-сервер http sys для размещения службы веб-API. Бизнес требует ограничить максимальное количество одновременных подключений. Для этой цели используется свойство конфигурации MaxConnections:

services.Configure<HttpSysOptions>(options =>
{
    options.MaxConnections = Configuration.GetValue<long?>("MaxConnections");
});

Но в случае, когда достигнуто ограничение на количество одновременных подключений, все новые подключения отбрасываются на уровне сокета. Можно ли изменить это поведение таким образом, чтобы сервер принимал запрос и возвращал клиенту ответ 4xx или 5xx?

1 Ответ

0 голосов
/ 01 июня 2020

Я наконец-то нашел решение: в опциях есть свойство Http503Verbosity . По умолчанию он установлен на Http503VerbosityLevel.Basi c, но если изменить его на Http503VerbosityLevel .Limited или Http503VerbosityLevel.Full 503 ответ будет возвращен для запросов выше лимита. Итак, мой код теперь выглядит так:

        services.Configure<HttpSysOptions>(options =>
        {
            options.MaxConnections = Configuration.GetValue<long?>("MaxConnections");
            options.Http503Verbosity = Http503VerbosityLevel.Full;
        });
...