.net 单个客户端的有限入站连接 设置说明:

.net 单个客户端的有限入站连接 设置说明:,.net,asp.net-web-api,windows-server-2016,iis-10,.net-4.6.1,.net,Asp.net Web Api,Windows Server 2016,Iis 10,.net 4.6.1,我有一个网站,允许用户选择他们想要查看数据的设备。该网站生成一个页面,告诉用户的浏览器在哪里查询设备的数据。这些设备很旧,不再符合大多数浏览器的安全标准,因此我们现在引导浏览器连接到运行在同一台服务器上的.net web api应用程序,该应用程序获取字节流数据并将其转发回浏览器 用户可以选择一台设备,但大多数情况下,用户最多可以查看20台设备。多个用户也可以查看同一设备 流转发站点是通过IIS 10托管在Windows 2016上的.net 4.6.1 web api 问题是: 流转发对于一些

我有一个网站,允许用户选择他们想要查看数据的设备。该网站生成一个页面,告诉用户的浏览器在哪里查询设备的数据。这些设备很旧,不再符合大多数浏览器的安全标准,因此我们现在引导浏览器连接到运行在同一台服务器上的.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设置限制了通过per ___;的连接数

我所尝试的: 我已经阅读了这里的所有问题,以及其他网站上所有与该问题相关的文章,没有发现任何有效的方法。我已尝试在machine.config中添加connectionManagement maxconnection,并将所有IP设置为100。我尝试增加工作进程的数量和线程的最大数量。我尝试增加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大IP,显然默认情况下没有设置HTTP/2配置文件。我们的网络团队处理了这个配置文件,所以我不能发布确切的步骤,但是为我们的站点设置一个HTTP/2配置文件是解决方案。我听说AskF5网站上有分步指南。

您能告诉我如何在web api中获得设备蒸汽吗?设备数据应用程序是否仍托管在同一IIS上?使用控制器中的PushStreamContent功能连接到设备。在假期里进行了更多的研究之后,这似乎是关于最大并发连接的浏览器限制,而不是.net或IIS问题。由于无法控制大多数最终用户的设置,我正试图找到一种解决方法。