2017-04-27 212 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.它永遠不會連接 –