事件
Power BI DataViz World Championships
2月14日 下午4時 - 3月31日 下午4時
4 次參賽機會,有機會贏得會議套裝行程,現場參與在拉斯維加斯舉行的總決賽
進一步了解本節協助處理嘗試建立與 ASP.NET Core SignalR 中樞連線時可能發生的錯誤。
使用 WebSockets 和 skipNegotiation = true
時
WebSocket connection to 'wss://xxx/HubName' failed: Error during WebSocket handshake: Unexpected response code: 404
在沒有固著工作階段的情況下使用多部伺服器時,連線可以在一部伺服器上啟動,然後切換至另一部伺服器。 另一部伺服器並不知道先前的連線。
確認用戶端連線到正確的端點。 例如,伺服器裝載於 http://127.0.0.1:5000/hub/myHub
,而用戶端正嘗試連線到 http://127.0.0.1:5000/myHub
。
如果連線使用識別碼,而且在交涉之後,花太長的時間傳送要求給伺服器,則伺服器會:
針對下列錯誤:
WebSocket connection to 'wss://xxx/HubName' failed: Error during WebSocket handshake: Unexpected response code: 400
Error: Failed to start the connection: Error: There was an error with the transport.
此錯誤通常是由只使用 WebSocket 傳輸,但伺服器上未啟用 WebSocket 通訊協定的用戶端所造成。
使用 WebSockets 和 skipNegotiation = true
時
WebSocket connection to 'ws://xxx/HubName' failed: Error during WebSocket handshake: Unexpected response code: 307
在交涉要求期間,也可能會發生此錯誤。
常見原因:
Startup
中呼叫 UseHttpsRedirection
來強制執行 HTTPS,或透過 URL 重寫規則強制執行 HTTPS。可能的解決方案:
.withUrl("https://xxx/HubName")
Http 狀態碼 405 - 不允許方法
Http 狀態碼 0 - 通常是 CORS 問題,未提供狀態碼
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:5000/default/negotiate?negotiateVersion=1. (Reason: CORS header 'Access-Control-Allow-Origin' missing).
.WithOrigins(...)
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:5000/default/negotiate?negotiateVersion=1. (Reason: expected 'true' in CORS header 'Access-Control-Allow-Credentials').
.AllowCredentials()
新增至 CORS 原則。 無法使用 .AllowAnyOrigin()
或 .WithOrigins("*")
搭配此選項Http 狀態碼 413 - 承載太大
這通常是由具有超過 4k 的存取權杖所造成。
.AddAzureSignalR(options =>
{
options.ClaimsProvider = context => context.User.Claims;
});
暫時性網路失敗可能會關閉 SignalR 連線。 伺服器可能會將關閉的連線解譯為正常用戶端中斷連線。 若要取得用戶端在那些情況下為何會中斷連線的詳細資訊,請從用戶端和伺服器蒐集記錄。
事件
Power BI DataViz World Championships
2月14日 下午4時 - 3月31日 下午4時
4 次參賽機會,有機會贏得會議套裝行程,現場參與在拉斯維加斯舉行的總決賽
進一步了解文件
瞭解如何設定 ASP.NET Core SignalR 應用程式。
了解 ASP.NET Core SignalR 中的安全性。
了解如何從您的 ASP.NET Core SignalR 應用程式收集診斷。