2017-04-27 168 views
0

我正在进行维护项目。该应用程序基于ASP.Net MVC4构建,并托管在Azure云上。它使用signalR。现在的问题是,signalR连接url会在一段时间后中止。为此,我必须从Azure门户重新启动托管应用程序。但每当客户报告问题时,我都无法做到这一点。 如果任何人可以帮助或建议或解释如何解决这个问题以及为什么会发生这种情况,请提出请求。signalR未按预期工作

以下日志我在浏览器控制台有:

SignalR:serverSentEvents运输连接失败。试图 回退。 SignalR:当尝试连接 时foreverFrame传输超时。 SignalR:foreverFrame传输失败连接。尝试 回退。 SignalR:尝试连接 时longPolling传输超时。 SignalR:longPolling传输失败连接。尝试 回退。 SignalR:后备传输耗尽。 SignalR: 停止连接。 SignalR:触发ajax中止async = true。

谢谢...

+0

你有什么异常吗? – janitha000

+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. 
}); 
+0

我不认为这会有所帮助 - 连接甚至没有连接...我认为在服务器端有一个问题阻止建立连接。 – Pawel

+0

''在服务器端存在一个问题,阻止建立连接'是的,中心服务器的某个问题也可能阻止客户端建立连接。 –

+0

我试图调试并找到$ .connection.hub.state输出为0,这是'连接'。它直接移动到“断开”状态,它是4.它永远不会连接 –