Как изменить ответ веб-сервера http.sys при достижении лимита maxconnection
Мы используем веб-сервер http sys для размещения службы веб-API. Бизнес требует ограничить максимальное количество одновременных подключений. Для этой цели используется свойство конфигурации MaxConnections:
services.Configure<HttpSysOptions>(options =>
{
options.MaxConnections = Configuration.GetValue<long?>("MaxConnections");
});
Но в случае, когда лимит одновременных подключений достигал, все новые подключения сбрасывались на уровне сокета. Можно ли изменить это поведение таким образом, чтобы сервер принимал запрос и возвращал клиенту ответ 4xx или 5xx?
1 ответ
Решение
Наконец-то я нашел решение: в опциях есть свойство Http503Verbosity. По умолчанию он установлен на Http503VerbosityLevel.Basic, но если изменить его на Http503VerbosityLevel.Limited или Http503VerbosityLevel. Полный ответ 503 будет возвращен для запросов выше лимита. Итак, мой код теперь выглядит так:
services.Configure<HttpSysOptions>(options =>
{
options.MaxConnections = Configuration.GetValue<long?>("MaxConnections");
options.Http503Verbosity = Http503VerbosityLevel.Full;
});