首页 > 解决方案 > 达到最大连接限制时如何更改 http.sys Web 服务器响应

问题描述

我们正在使用 http sys web 服务器来托管 web api 服务。业务需要限制最大并发连接数。用于该目的的 MaxConnections 配置属性:

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

但是,当并发连接限制达到所有新连接时,所有新连接都会在套接字级别被丢弃。是否可以更改此行为,以便服务器接受请求并向客户端返回 4xx 或 5xx 响应?

标签: c#.netasp.net-web-apihttpsys

解决方案


我终于设法找到了解决方案:选项中有Http503Verbosity属性。默认情况下,它设置为Http503VerbosityLevel.Basic但如果将其更改为 Http503VerbosityLevel .Limited 或 Http503VerbosityLevel.Full 503 响应将返回超过限制的请求。所以我的代码现在看起来像这样:

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

推荐阅读