
Hat jemand IIS 6.0-Loadbalancing auf Win 2003-Servern mit ASP.NET-App unter Verwendung von InProc-Sitzungen konfiguriert? Wie kann dies erreicht werden?
Antwort1
Wenn Sie das NLB-Clustering verwenden, das Teil von Windows Server 2003 ist, suchen Sie nach der Affinitätseinstellung. Wenn Sie diese auf „Einzelaffinität“ setzen, wird die Kommunikation von einer IP-Adresse immer an denselben Server weitergeleitet, sodass der Client Zugriff auf den InProc-Sitzungsstatus erhält. Es gibt eine Dokumentation zur Einstellung unterhttp://technet.microsoft.com/en-us/library/bb734858.aspx
Antwort2
Ich kann nicht sagen, dass ich jemals einen IIS 6-Server mit InProc-Sitzungen ohne Verwendung eines Lastausgleichsgeräts ausgeglichen habe. Wenn Sie keinen verteilten Cache wie SQL Server oder einen leistungsstärkeren benutzerdefinierten Cache verwenden können, müssen Sie wahrscheinlich eine Art „Sticky Session“-Routing in einem Lastausgleichsgerät einrichten. Auf diese Weise können Sie Ihre Websites auslagern, aber für jeden Benutzer werden sie für die Dauer seiner Sitzung wiederholt an denselben bestimmten Server in der Farm weitergeleitet. Auf diese Weise können Sie InProc-Sitzungen verwenden, jedoch zu dem relativ geringen Preis, dass Sie keinen perfekt idealen Lastausgleich haben.
Hinweis: Auf dieser Art von Fragen erhalten Sie möglicherweise bessere Antworten auf die Schwesterseite von StackOverflow: www.ServerFault.com.
Antwort3
Dies kann je nach Ihrer Balance erreicht werden.
Viele Balancer ermöglichen Ihnen die Angabe eines Cookies als Methode zur Entscheidung, wohin Stick-Sitzungen geleitet werden sollen. Dies hängt jedoch stark vom verwendeten Hardware-/Software-Balancer ab. Nur so funktioniert es für Sie.
Antwort4
Wenn Sie die Statusverwaltung nicht auf den ASP.NET-Statusdienst oder die SQL Server-Statusdatenbank konsolidieren können, besteht die einfachste Möglichkeit darin, Ihre Webfarm mit dem NLB von Windows zu konfigurieren.
http://www.west-wind.com/presentations/loadbalancing/networkloadbalancingwindows2003.asp