关于asp.net mvc:使用Signalr时,IIS上会有任何连接限制

While using signalr, will there be any connection limits on IIS

最近几天我一直在看SignalR。使用此工具,我创建了一个管理仪表板来获取有关数据库表的实时信息。基本上,该表由来自各种应用程序的不同用户填充。结果很好。仅当客户端Broswer和WebServer之间存在持久连接时,才可以进行这些更新。在生产中部署该应用程序之前,我几乎没有疑问。

我知道SignalR首先检查WebSockets,然后根据客户端和服务器之间的可用性来寻找Long Polling。无论使用什么,客户端和服务器之间都会建立连接。

我的问题是,在更多用户连接到同一服务器(例如同时连接100,000个管理员)的情况下,它的性能如何? IIS在一次可以打开的持久连接数量上是否有任何限制?如果是这样,我们可以将其配置为最大值,然后将该值设为多少。

对不起,如果是菜鸟问题

ASP.NET MVC3和IIS 7用于开发。


您应该查看GitHub上SignalR Wiki的Performance部分。这为以下内容提供了一些非常好的指导:

  • IIS配置-每个应用程序的最大并发请求数
  • ASP.NET配置-最大并发请求数和请求队列限制

此外,它还指出了关键性能计数器,以在对应用程序执行负载测试时进行监视。要真正了解您的应用程序将如何执行并针对特定情况进行必要的调整,您应该执行哪种IMO。

最后,有一个链接可以链接到推荐的工具,以使用SignalR生成客户端负载。

更新:链接到曲柄现在是最新的。


谢谢佩奇。这是我的发现。默认情况下,ASP.NET 4.0每个CPU接受5000个最大并发请求。要更改此设置,我们需要在此位置的ASP.NET Config文件中设置此数字
%windir%\ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet.config

我也发现了这个很棒的PodCast
斯科特·汉瑟曼
http://www.hanselminutes.com/325/aspnet-45-updates-core-webforms-and-signalr-with-damian-edwards


您可能更可能在Windows 8/10(连接限制仅为10 *)上遇到此问题。当然,这只会在开发过程中对您造成影响-但是,如果您使用活动连接打开了多个浏览器,并且超过10个很容易,那么这将是一个很大的痛苦。

*我目前无法确认Windows 10与Windows 8具有相同的连接限制,但很可能如此。