【发布时间】: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