SignalR - 在生产中,8小时后没有响应

时间:2012-07-01 12:59:09

标签: signalr self-hosting

在procution中使用SignalR。在启动时一切正常,但8-9小时后,服务停止工作,没有任何异常,或事件日志中的任何日志信息。

的信息:

  • 在线用户(在此8-9小时内使用此服务):3000
  • 在线并发用户Max(同时):200
  • Hubs Count:1(尝试捕获每个记录方法)

浏览器超时后,返回“404 not found”。

你有任何想法吗?

1 个答案:

答案 0 :(得分:2)

您使用的是什么版本的SignalR?您应该使用v0.5.2,因为之前的版本存在僵尸连接问题,这会导致应用程序池的OutOfMemoryException或超过允许的请求数量,从而关闭您的应用程序。

基本上会发生什么情况是请求备份#(使用性能监视器查看ASP.NET / {请求当前,请求排队,请求被拒绝} - See Performance Tuning)和/或你会最大化您的IIS请求,服务将关闭。您可以手动覆盖它并增加ASP.NET的请求当前。我在生产箱上将其增加到大约20,000个。

如果您没有最大限度地提出请求,则由于内存使用量增加或关闭应用池的例外情况,您的应用池可能会关闭。

在IIS管理器的“管理”下,双击“配置编辑器”。

enter image description here

接下来,在顶部,单击system.applicationHost/applicationPools,然后单击“(收集)”行的RHS。这将打开您的应用程序池集合编辑器。

enter image description here

选择您的SignalR应用程序池并检查底部的属性。在这里,您可以将periodicRestart/memory阈值设置为您想要的任何值。

enter image description here

在我们的应用程序中,我发现由于应用程序的高流量特性,我们在45分钟内表现良好。

希望这有帮助。