2016-07-29 62 views
1

Ich benutze signalr2.2 Web-Anwendung und gehostet in IIS-8. Hier habe ich versucht, Load Balancing für meine Anwendung mit ARR3.0 zu implementieren. In meiner Serverfarm habe ich zwei Server angeschlossen und die Routing-Regel als "gewichtetes Round-Robin" festgelegt. Jeder Server hat einen Javascript-Client mit HTML-Seite. Während ich den Zugriff auf HTML-Seite von einem Server die Anforderung als erwartet geführt wurde, aber ich in meinem HTML-Seite dieser Fehler habe und signalr nichtSignalR 2.2 und ARR3.0 Lastenausgleich

WebSocket-Verbindung zu ‚ws verbunden bekommt: //mydomain.com/signalr/connect transport = WebSockets & client = 1,5 & connectionToken = x9rAfatyMm3TbqzrYKL1K37Z4tKrUTH7bwNmSItW55Z0ms6pe43YiQGFOmaHMyT% 2BpmGz62ukt4tha72vPcJhdqLtIvsQvqvY15oYGv69JjzSuuiSL7v2l% 2FccZT6tQa3Z & connection =% 5B% 7B% 22name% 22% 3A% 22chathub% 22% 7D% 5D & TID = 1' nicht bestanden: Fehler bei der WebSocket-Handshake: Unerwarteter Antwortcode: 400

Wenn ich offline irgendjemand von diesem Server in meiner Serverfarm mache, funktionierte der Signalgeber gut und es werden keine Fehler geworfen. Hilf mir, die Lösung zu finden.

Wenn ich signalr Server von meiner .net-Client-Anwendung kommunizieren wird es den folgenden Fehler

Fehler bei Startanforderung werfen. Verbindung wird unterbrochen.

+0

Sie müssen den gleichen Computerschlüssel auf allen Servern in der Farm – janitha000

+0

Hallo @ janithat000, muss ich klären, In der Serverfarm nach implementierten Maschinenschlüssel Änderungen, Immer wenn ich die URL traf, trat onconnected in einem Server und Hub Der Methodenaufruf wurde auf einem anderen Server ausgeführt. Ist das die Vorgehensweise beim Routing? oder vermisse ich etwas? Bitte hilf mir. Hinweis: Ich verwende Pass-Through-Authentifizierung im Anwendungsknoten – Suresh

Antwort

2

Ich hatte dieses Problem auch. Wenn Sie tiefer suchen, lautet der Fehler: The connection id is in the incorrect format. Nach dem Googeln habe ich irgendwo gelesen, dass die Server bei der Ausführung einer Farmumgebung denselben Computerschlüssel verwenden müssen, der in IIS konfiguriert werden kann.

Um dies folgendermaßen vor:

  • Öffnen Sie die IIS in der Farm auf einem Ihrer Server zu verbinden.
  • In dem Serverknoten, öffnen Sie die Maschine Key Option im rechten Bereich
  • im rechten Menü klicken Sie auf Keys generieren
  • Uncheck die Generate a unique key for each application Option für beide Bestätigungstaste und Dekodierungsschlüssel .
  • Kopieren Sie die zwei generierten Schlüssel (z. B. Einfügen im Editor)
  • Stellen Sie sicher, dass alle Server in der Farm dieselben Schlüssel verwenden (der ARR-Server benötigt dies nicht). Möglicherweise müssen Sie die obigen Schritte wiederholen (vielleicht nicht sobald sie Shared Configuration verwenden).

Außerdem müssen Sie sicherstellen, dass Ihre Anwendung in jedem Server die gleiche Identität verwendet. Wählen Sie zum Beispiel Ihren Anwendungsknoten (oder den Standortknoten, falls dies der Fall ist), wählen Sie im rechten Menü Grundeinstellungen, dann Verbinden als .... Wenn die ausgewählte Option Anwendungsbenutzer ist, müssen Sie überprüfen, wie der Anwendungspool konfiguriert ist. Wenn es Network Service (wie meins) verwendet, haben Sie immer noch Probleme, weil jeder Server seine eigenen Anmeldeinformationen verwendet, aber Sie müssen sicherstellen, dass sie die gleiche Identität verwenden.

In meinem Szenario musste ich einen Benutzer mit Zugriff auf jeden Server in der Farm erstellen und die Anwendung denselben Benutzer verwenden. Erst danach wurde mein Problem gelöst.

+0

Danke Alisson. Ich werde dies versuchen und lassen Sie es wissen – Suresh

+0

Hallo @Alisson, Es funktioniert gut und ich bekomme nie einen Socket-Fehler danach. Danke für diese Info. Aber eine Sache, die ich klären muss, In der Serverfarm nach implementierten Maschinenschlüsseländerungen, Immer wenn ich die URL traf, passierte onconnected in einem Server und Hub-Methodenaufruf passierte in einem anderen Server. Ist das die Vorgehensweise beim Routing? oder vermisse ich etwas? Bitte hilf mir. Hinweis: Ich verwende Pass-Through-Authentifizierung im Anwendungsknoten – Suresh

+0

@Suresh, du bist willkommen. Erwägen Sie, die Antwort als akzeptiert zu markieren, wenn dies der Fall ist. – Alisson