【问题标题】:Limited inbound connections for individual clients单个客户端的入站连接有限
【发布时间】:2020-04-13 06:57:55
【问题描述】:

设置说明:

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

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

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

问题:

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

我尝试过的:

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

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

【问题讨论】:

  • 你能告诉我你是如何在 web api 中获取设备蒸汽的吗?设备数据应用程序是否仍托管在同一个 IIS 上?
  • 使用控制器内的 PushStreamContent 函数连接到设备。经过对假期的更多研究,这看起来是关于最大并发连接的浏览器限制,而不是 .net 或 IIS 问题。由于无法控制大多数最终用户的设置,我正在尝试解决这个问题。

标签: .net asp.net-web-api windows-server-2016 iis-10 .net-4.6.1


【解决方案1】:

如上面评论中所述,我的问题的答案是我达到了浏览器允许的最大并发连接数。解决方案是让 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 配置文件。我们的网络团队处理了配置文件,因此我无法发布确切的步骤,但为我们的站点设置 HTTP/2 配置文件是解决方案。有人告诉我 AskF5 网站上有分步指南。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多