在procution中使用SignalR。在启动时一切正常,但8-9小时后,服务停止工作,没有任何异常,或事件日志中的任何日志信息。
的信息:
浏览器超时后,返回“404 not found”。
你有任何想法吗?答案 0 :(得分:2)
您使用的是什么版本的SignalR?您应该使用v0.5.2,因为之前的版本存在僵尸连接问题,这会导致应用程序池的OutOfMemoryException
或超过允许的请求数量,从而关闭您的应用程序。
基本上会发生什么情况是请求备份#(使用性能监视器查看ASP.NET / {请求当前,请求排队,请求被拒绝} - See Performance Tuning)和/或你会最大化您的IIS请求,服务将关闭。您可以手动覆盖它并增加ASP.NET的请求当前。我在生产箱上将其增加到大约20,000个。
如果您没有最大限度地提出请求,则由于内存使用量增加或关闭应用池的例外情况,您的应用池可能会关闭。
在IIS管理器的“管理”下,双击“配置编辑器”。
接下来,在顶部,单击system.applicationHost/applicationPools
,然后单击“(收集)”行的RHS。这将打开您的应用程序池集合编辑器。
选择您的SignalR应用程序池并检查底部的属性。在这里,您可以将periodicRestart/memory
阈值设置为您想要的任何值。
在我们的应用程序中,我发现由于应用程序的高流量特性,我们在45分钟内表现良好。
希望这有帮助。