Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu bölüm, ASP.NET Core SignalR hub'ına bağlantı kurmaya çalışırken oluşabilecek hatalarla ilgili yardım sağlar.
Yanıt kodu 404
WebSockets kullanırken ve skipNegotiation = true
WebSocket connection to 'wss://xxx/HubName' failed: Error during WebSocket handshake: Unexpected response code: 404
Yapışkan oturumlar olmadan birden çok sunucu kullanırken, bağlantı bir sunucudan başlayıp başka bir sunucuya geçebilir. Diğer sunucu önceki bağlantının farkında değil.
İstemcinin doğru uç noktaya bağlandığını doğrulayın. Örneğin, sunucu adresinde
http://127.0.0.1:5000/hub/myHub
barındırılır ve istemci bağlanmayahttp://127.0.0.1:5000/myHub
çalışır.Bağlantı kimliğini kullanıyorsa ve anlaşmadan sonra sunucuya istek göndermek çok uzun sürüyorsa, sunucu:
- Kimliği siler.
- 404 döndürür.
Yanıt kodu 400 veya 503
Aşağıdaki hata için:
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.
Bu hata genellikle yalnızca WebSockets aktarımını kullanan bir istemciden kaynaklanır, ancak WebSocket protokolü sunucuda etkinleştirilmez.
Yanıt kodu 307
WebSockets kullanırken ve skipNegotiation = true
WebSocket connection to 'ws://xxx/HubName' failed: Error during WebSocket handshake: Unexpected response code: 307
Bu hata, anlaşma isteği sırasında da oluşabilir.
Yaygın neden:
- Uygulama,
UseHttpsRedirection
'daStartup
çağrılarak HTTPS'yi zorunlu kılacak şekilde yapılandırılır veya URL yeniden yazma kuralı aracılığıyla HTTPS'yi zorlar.
Olası çözüm:
- İstemci tarafındaki URL'yi "http" olan "https" olarak değiştirin.
.withUrl("https://xxx/HubName")
Yanıt kodu 405
Http durum kodu 405 - Yönteme İzin Verilmiyor
- Uygulamada CORS etkin değil
Yanıt kodu 0
Http durum kodu 0 - Genellikle bir CORS sorunudur, durum kodu verilmez
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).
- Beklenen çıkış noktalarını ekleme
.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').
- CORS politikanıza
.AllowCredentials()
ekleyin..AllowAnyOrigin()
veya.WithOrigins("*")
bu seçenekle kullanılamaz
Yanıt kodu 413
Http durum kodu 413 - Yük Çok Büyük
Bunun nedeni genellikle 4 kilobaytın üzerinde bir erişim jetonuna sahip olmaktır.
- Azure SignalR Hizmeti'ni kullanıyorsanız, Hizmet aracılığıyla gönderilen talepleri şu şekilde özelleştirerek belirteç boyutunu küçültün:
.AddAzureSignalR(options =>
{
options.ClaimsProvider = context => context.User.Claims;
});
Geçici ağ hataları
Geçici ağ hataları bağlantıyı kapatabilir SignalR . Sunucu, kapatılan bağlantıyı istemcinin bağlantısını düzgün bir şekilde kesmesi olarak yorumlayabilir. Bu gibi durumlarda istemcinin bağlantısının neden kesildiğinden daha fazla bilgi edinmek için istemciden ve sunucudan günlükleri toplayın.
Ek kaynaklar
ASP.NET Core