【问题标题】:While using signalr, will there be any connection limits on IIS使用 signalr 时,IIS 是否有任何连接限制
【发布时间】:2012-07-24 22:49:43
【问题描述】:

最近几天我一直在研究 SignalR。使用它,我创建了一个管理仪表板来获取有关数据库表的实时信息。基本上,该表由来自各种应用程序的不同用户填充。结果很好。只有当客户端 Broswer 和 WebServer 之间存在持久连接时,这些更新才可能发生。在将这个应用部署到生产环境之前,我几乎没有任何疑问。

我了解 SignalR 首先检查 WebSockets,然后根据客户端和服务器之间的可用性来查找长轮询。无论它使用什么,客户端和服务器之间都会打开一个连接。

我的问题是它在更多用户连接到同一台服务器的情况下如何执行,例如同时连接 100,000 名管理员。 IIS 对它可以在某一点打开的持久连接数是否有任何限制?如果是这样,我们可以将其配置为最大值以及该值是多少。

如果是菜鸟问题,请见谅

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

【问题讨论】:

    标签: asp.net-mvc iis signalr


    【解决方案1】:

    您应该查看 GitHub 上 SignalR Wiki 的 Performance Section。这为以下方面提供了一些非常好的指导:

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

    此外,它还说明了在执行应用程序负载测试时要监控的关键性能计数器。您应该做哪个 IMO 才能真正了解您的应用程序将如何执行并根据您的特定场景进行必要的调整。

    最后,有一个指向Crank 的链接,这是使用 SignalR 生成客户端负载的推荐工具。

    更新:Crank 的链接现在是最新的。

    【讨论】:

    【解决方案2】:

    谢谢佩奇。这是我的发现。默认情况下,ASP.NET 4.0 每个 CPU 最多接受 5000 个并发请求。要改变这一点,我们需要在 ASP.NET 配置文件中设置这个数字,该文件可以在这个位置找到 %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

    【讨论】:

    • 如何设置每个 CPU 的最大并发请求数? (XML参数是什么?)我的aspnet.config没有明显的参数要修改。
    【解决方案3】:

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

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

    【讨论】:

    • asp.net/signalr/overview/getting-started/supported-platforms "不应使用 IIS 或 Cassini 的完整版本,因为将施加 10 个同时连接的限制,由于连接是暂时的,经常重新建立,因此会很快达到,并且在不再使用时不会立即处理。应在客户端操作系统上使用 IIS Express。"
    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 2010-09-07
    • 1970-01-01
    • 2021-12-07
    相关资源
    最近更新 更多