个人客户的有限入站连接

Limited inbound connections for individual clients

设置说明:

我有一个网站,允许用户select他们想从哪些设备查看数据。该网站生成一个页面,告诉用户的浏览器在哪里请求设备数据。这些设备很旧,不再符合大多数浏览器的安全标准,所以我们现在指示浏览器连接到我们的 .net web api 应用程序,该应用程序运行在同一台服务器上,它会抓取字节流数据并转发它返回到浏览器。

用户可以选择一台设备,但大多数情况下他们最多可以查看 20 台设备。多个用户也可以查看同一台设备。

流转发站点是 .net 4.6.1 web api 通过 IIS 10 在 Windows 2016 上托管。

问题:

流转发对一些设备非常有效,但我似乎达到了 6 台设备的限制。如果我尝试使用另一个浏览器连接到一组不同的设备,它也只会加载 6 个设备。但是,总共有 12 个设备。所以,看起来每个 requestor/browser/something 是有限的。浏览器中的网络选项卡显示它们对所有设备都有待处理的 GET 请求 selected,因此看起来浏览器正在发送请求。我在网络 api 控制器的 GET() 函数中设置了一个记录器,只有前 5 个 GET 请求到达控制器。所以,也许是 .net 或 IIS 设置限制了每个 _____?

的连接数

我尝试过的:

我已经阅读了此处的所有问题以及其他网站上与该问题相关的所有文章,但没有找到任何有效的方法。我已经尝试在 machine.config 中添加 connectionManagement maxconnection 并将其设置为 100 所有 IP。我尝试增加工作进程数和最大线程数。我尝试增加 ServicePointManager.DefaultConnectionLimit,虽然我是在我的控制器的 GET 函数中这样做的,但我不确定这是正确的地方。

任何可能导致 ~6 个连接限制的想法?

如上面的评论所述,我的问题的答案是我达到了浏览器允许的最大并发连接数。解决方案要么让 HTTP/2 正常工作,这样我就可以多路复用流,要么使用域分片设置我的站点。显然,使用 HTTP/2 是理想的解决方案。

为 IIS 设置 HTTP/2 后,只有 IE 接受 HTTP/2 连接,并且仅在同一数据中心的两台服务器之间,并且仅当通过服务器名称寻址时。试图弄清楚发生了什么事。


编辑: 完整的解决方案还有几个部分。

事实证明,IIS 不喜欢某些浏览器的 SSL 客户端证书,因此您必须将 IIS 的 SSL 设置设置为忽略客户端证书。这允许我连接任何 HTTP/2 支持的浏览器,但只能在同一数据中心的两台服务器之间连接,并且只能在通过服务器名称寻址时连接。因此,网络上为获取站点域名而进行的某些操作正在阻止 HTTP/2 流量或阻止 HTTP/2 升级。

出现域名问题是因为我们的组织使用 F5 Big-IP,显然 HTTP/2 默认情况下未设置配置文件。我们的网络团队处理了配置文件,所以我无法 post 确切的步骤,但为我们的站点设置 HTTP/2 配置文件是解决方案。我听说 AskF5 网站上有分步指南。