【茶包射手日記】SignalR導致Mac Safari Crash

測試發現用Mac Safari連上專案網站,在某些狀況下會連續Crash:

接著網頁因重複發生問題宣告停用:

在Crash報告中看到WebSocketChannel、ScoketStreamHandleBase等字眼,該網頁唯一會涉及WebSocket的只有SignalR,改用Chrome測試,找到SignalR在特定情境建立連線出錯的證據:

由HTTP 500錯誤訊息追進程式,發現PushHub的public override Task OnConnected()有Bug會throw Exception,造成SignalR Script在網頁載入後歷經"試圖建立連線->失敗->嘗試建立連線->失敗->..."的循環(猜想連帶也有WebSocket相關動作),在Chrome及其他瀏覽器只視為網路存取錯誤,但Safari卻因此Crash。SignalR Github Issue回報區有類似錯誤報告,Safari(不限iMac,也有iPad) + WebSocket導致Crash,但沒找到跟我相同的錯誤訊息。

問題在修正OnConnected Bug後消失!

結論: SignalR + WebSocket + Safari如發生Crash,可優先檢查是否為連線過程有錯導致。

歡迎推文分享:
Published 16 April 2014 09:33 PM 由 Jeffrey
Filed under:
Views: 5,223



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<April 2014>
SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication