Für lokale Bereitstellungen bietet ASP.NET Session State drei integrierte Speicheroptionen (InProc, StateServer und SqlServer) sowie eine vierte Option „Benutzerdefiniert“. Die ersten beiden integrierten Optionen (InProc, StateServer) weisen Skalierbarkeitsprobleme auf, während die Option SqlServer sowohl Leistungs- als auch Skalierbarkeitsprobleme aufweist.
Eine viel bessere Strategie ist die Verwendung der Option "Benutzerdefiniert" und des Plug-Ins NCache wie dein ASP.NET-Sitzungszustandsanbieter. NCache ist ein extrem schneller und skalierbarer verteilter Open-Source-Cache für .NET. Es bewältigt extreme Transaktionslasten, indem es Ihnen ermöglicht, zur Laufzeit weitere Cache-Server hinzuzufügen und linear zu skalieren. NCache bietet auch intelligente Cache-Replikation Sie verlieren also keinen ASP.NET-Sitzungsstatus, wenn ein Webserver oder ein Cache-Server ausfällt.
Umsetzung NCache Da Ihr Session State Provider (SSP) keine Codeänderungen erfordert, folgen Sie einfach diesen Schritten:
Einzelheiten zur Konfiguration finden Sie hier. ASP.NET-Sitzungszustandsanbieter für NCache. Im Folgenden sind einige der Vorteile der Verwendung von NCache als Ihr ASP.NET-Sitzungszustandsanbieter:
NCache bietet Ihnen zwei Möglichkeiten, den ASP.NET-Sitzungsstatus für Anwendungen zu verwalten, die in mehreren Regionen (Rechenzentren) ausgeführt werden, und dabei die Sitzungskonsistenz zwischen diesen Regionen aufrechtzuerhalten. Diese sind wie folgt:
WAN-Replikation des ASP.NET-Sitzungsstatus: NCache stellt ein Brückentopologie Damit können Sie Ihren gesamten ASP.NET-Sitzungsstatusspeicher (den verteilten Cache) in eine andere Region (Rechenzentrum) replizieren WANDadurch wird sichergestellt, dass Ihre Sitzungen immer in mehreren Regionen (Rechenzentren) vorhanden sind. Sie können dies im Aktiv-Passiv-Modus (für die Notfallwiederherstellung) oder im Aktiv-Aktiv-Modus verwenden. Im Aktiv-Aktiv-Modus können Sie sogar den Datenverkehr zwischen mehreren Regionen (Rechenzentren) ausgleichen. All dies wird durch Konfigurationsänderungen erreicht.
ASP.NET-Sitzungsstatus für mehrere Regionen: Wenn Sie den ASP.NET-Sitzungsstatus aufgrund der Bandbreitennutzung nicht über das WAN replizieren möchten, können Sie Folgendes verwenden: ASP.NET-Sitzungsstatus für mehrere Standorte Merkmal von NCacheDabei wird der ASP.NET-Sitzungsstatus nicht zwischen den Sites repliziert, sondern am Ort seiner Erstellung gespeichert. Wenn Sie jedoch Datenverkehr von einer Region (Rechenzentrum) in eine andere verschieben, wird der ASP.NET-Sitzungsstatus mit verschoben. Auf diese Weise können Sie zwei oder mehr aktive Regionen (Rechenzentren) haben, von denen jede den Großteil ihres Datenverkehrs lokal hält, aber bei Bedarf gelegentlich in eine andere Region überläuft.
Und Sie können auch ein Rechenzentrum herunterfahren, ohne dass es zu Unterbrechungen für die Benutzer kommt, da ihre Sitzungen für andere Rechenzentren zugänglich sind.
Das NCache Der ASP.NET Session State Provider implementiert alle Standard ASP.NET-Sitzungszustandsanbieter Funktionen. Darüber hinaus bietet es verschiedene erweiterte Funktionen, mit denen Sie komplexe Situationen in Ihren Anwendungen bewältigen können.
INSTALL_DIR\NCache\log-files\SessionStoreProvider Ordner) durch Angabe enableLogs = "true". Sie können auch die Protokollierung von Fehlern im Windows-Ereignisprotokoll aktivieren, indem Sie angeben writeExceptionsToEventLog = "true".Standardsitzungssperre: Das Standardverhalten der ASP.NET-Sitzungssperre besteht darin, dass bei einer gesperrten Sitzung eine weitere Anforderung 90 Sekunden (konfigurierbar) wartet und am Ende die Sitzung zwangsweise entsperrt. Sie können diese Option wie folgt angeben:
enableSessionLocking = "true" sessionLockingRetry = "-1" emptySessionWhenLocked = "false"
Verbesserte Sitzungssperre: Wenn Sie eine ASP.NET-Anwendung mit hohem Datenverkehr haben, bei der Roboter möglicherweise Daten scrapen und dieselbe Sitzungs-ID für Hunderte oder Tausende von Anfragen gleichzeitig verwenden, können Sie sich die Standardoption zum Sperren der Sitzung nicht leisten, da eine Wartezeit von 90 Sekunden alle verfügbaren Sockets belegen könnte. Stattdessen möchten Sie die Anfrage schnell zurückgeben, um einen Fehler anzuzeigen. Sie können dies wie folgt angeben:
enableSessionLocking = "true" sessionLockingRetry = "5" emptySessionWhenLocked = "false"
Dabei werden 5 Wiederholungsversuche im Abstand von einer halben Sekunde unternommen, und anschließend wird eine leere Sitzung zurückgegeben, um einen Fehler zu signalisieren.
© Copyright Alachisoft 2002 - Alle Rechte vorbehalten NCache ist eine eingetragene Marke der Diyatech Corp.