我正在进行维护项目。该应用程序基于ASP.Net MVC4构建,并托管在Azure云上。它使用signalR。现在的问题是,signalR连接url在一段时间后被中止。为此,我必须从Azure门户重新启动托管应用程序。但是每次客户报告问题时我都不能这样做。 如果任何人可以帮助或建议或解释如何解决这个问题以及为什么会发生这种情况。
我在浏览器控制台中记录了以下日志:
SignalR:serverSentEvents传输连接失败。试图 倒退。 SignalR:foreverFrame传输在尝试时超时 连接。 SignalR:foreverFrame传输无法连接。尝试 退后SignalR:longPolling传输在尝试时超时 连接。 SignalR:longPolling传输无法连接。尝试 退后SignalR:后备传输耗尽。 SignalR: 停止连接。 SignalR:被解雇的ajax abort async = true。
...谢谢
答案 0 :(得分:0)
首先,请检查是否调用了Stop
方法,或者您是否离开了客户端中的页面。
其次,许多因素可能导致断线问题。 this article描述了连接生存期和一些断开连接方案,这可能有助于您找到问题的可能原因。
第三,在SignalR尝试重新建立丢失的传输连接时达到超时限制,请尝试在Application_Start
中更改/增加Timeout settings。
此外,持续重新连接方法可能会在连接丢失并且重新连接尝试超时后自动重新建立连接,您可以尝试。
$.connection.hub.disconnected(function() {
setTimeout(function() {
$.connection.hub.start();
}, 5000); // Restart connection after 5 seconds.
});