Probleme beim Lastenausgleich der .Net-Web-App mithilfe des State Servers

Probleme beim Lastenausgleich der .Net-Web-App mithilfe des State Servers

Wir haben mehrere Webserver hinter einem Netscaler-Load Balancer. Die (Win2008)-Server hosten jeweils eine ASP.Net-Anwendung (unter Verwendung von IIS 6.1), die so konfiguriert sind, dass sie einen zentralen Server verwenden, auf dem der .Net StateServer-Dienst zur Sitzungsstatusverwaltung ausgeführt wird.

Wenn wir den Load Balancer so konfigurieren, dass er „Round Robin“ oder „Least Busy“-Routing verwendet, stürzt die Webanwendung regelmäßig mit einem Fehler ab, der darauf hinweist, dass etwas, das sie im Sitzungsstatus erwartet hatte, fehlte. Dies passiert jedoch nicht IMMER – nur bei bestimmten Schritten und dann bei etwa 75 % der Versuche.

Wenn wir den Load Balancer auf Serverpersistenz konfigurieren (sodass der Benutzer auf einem Server „bleibt“), tritt das Problem nicht auf. (Dies ist jedoch nicht unser gewünschter Ausführungsmodus.)

Dinge, die wir bereits überprüft/erledigt haben:

  • Neu startenall die Dinge
  • Die Maschinenschlüssel sind auf allen Servern gleich
  • Es gibt keine Verbindungsprobleme zwischen den Webservern und dem Statusserver
  • IIS ist Site-Namen, Pfade und IDs sind auf allen Webservern gleich
  • In den Anwendungsprotokollen wird kein Fehler protokolliert

Hat jemand Vorschläge zu anderen Dingen, die überprüft werden sollten / zu möglichen Ursachen?

NB. Wir haben genau dasselbe Setup in einer anderen Umgebung – dieselbe Art von Lastenausgleich, dieselbe Webanwendung, dieselbe Konfiguration, dasselbe Server-Setup … und es funktioniert einwandfrei. Der einzige Unterschied ist eine andere Version von VMWare Tools, aber Sie können nicht erkennen, dass dies die Ursache ist?

Antwort1

Monate später haben wir die Ursache entdeckt. Einige (aber nicht alle) Server wurden auf eine neuere Version des .Net Frameworks aktualisiert.

Microsoft unterstützt nicht die Verwendung desselben StateServers durch verschiedene Server.mit verschiedenen Versionen des Frameworks, sodass Kunden beim Wechsel zwischen einem Server mit 4.5.1 und einem mit einer früheren Version im Wesentlichen ihre Sitzung verloren und die Anwendung stürzte ab.

Wenn Sie auf dieses Problem stoßen, empfehle ich Ihnenprüfen Sie, welches Framework installiert istauf jedem Server – sie müssen alle gleich sein, damit sie mit demselben StateServer funktionieren.

verwandte Informationen