Sitzungsstatusanbieter für Azure-In-Role Cache
Wichtig
Microsoft empfiehlt, alle neuen Entwicklungen azure Redis Cache zu verwenden. Aktuelle Dokumentation und Anleitung zum Auswählen eines Azure Cache-Angebots finden Sie unter Welches Azure Cache-Angebot ist für mich geeignet?
Der Sitzungsstatusanbieter ist ein Out-of-Process-Speichermechanismus für ASP.NET Anwendungen. Mit diesem Anbieter können Sie ihren Sitzungsstatus in einem Cache speichern, anstatt im Arbeitsspeicher oder in einer SQL Server Datenbank zu speichern.
Ein Beispiel für das Zwischenspeichern des Sitzungszustands finden Sie im Beispiel zum Zwischenspeichern des Sitzungszustands und des Ausgabecaches.
Funktionen
Der Sitzungsstatusanbieter hat die folgenden Verbesserungen über die letzten ASP.NET Sitzungsstatusanbieter:
Er verwendet intern die Klasse NetDataContractSerializer für die Sitzungsstatusserialisierung.
Er kann den Sitzungsstatus für verschiedene ASP.NET-Anwendungen gemeinsam verwenden.
Er unterstützt den gleichzeitigen Zugriff auf den gleichen Sitzungsstatussatz für mehrere Reader und einen Writer.
Komprimierung kann durch die Eigenschaften des Cacheclients verwendet werden.
Die Verwendung der Klasse NetDataContractSerializer für die Serialisierung führt zur Unterstützung einer breiteren Palette von serialisierbaren Typen. Dies schließt auch die Unterstützung serialisierbarer Binärtypen ein.
Der Anbieter unterstützt für verschiedene ASP.NET-Anwendungen das Lesen und Schreiben der gleichen Sitzungsstatusdaten. Angenommen, ein Entwickler verfügt über zwei verschiedene ASP.NET Websites: /contoso und /adventureworks. Der Sitzungsstatusanbieter kann in jeder Webanwendung so konfiguriert werden, dass er auf den gleichen Sitzungsstatusspeicher im Cachecluster verweist. Als Ergebnis lesen und schreiben beide Anwendungen die gleichen Sitzungsdaten für jeden beliebigen Sitzungsbezeichner.
Der Sitzungsstatusanbieter unterstützt den gleichzeitigen Zugriff auf den gleichen Sitzungsstatussatz für mehrere Reader und einen Writer. Reader sind in diesem Fall als Seiten definiert, die für die Verwendung des Sitzungsstatus als ReadOnly markiert sind. Für Anwendungen, die in erheblichem Umfang AJAX-Rückrufe verwenden, treten keine serverseitigen Anforderungswarteschlangen auf, wenn die meisten Sitzungsstatus-Zugriffsmuster der Anwendung nur schreibgeschützten Zugriff auf den Sitzungsstatus erfordern.
So fügen Sie einem ASP.NET-Projekt den Sitzungsstatusanbieter hinzu
Konfigurieren Sie zuerst einen Cache, der mit dem ASP.NET-Anbieter verwendet wird. Sie können zwischenspeichern mit einer gemeinsamen Topologie oder mit einer dedizierten Rolle hosten.
Verwenden Sie NuGet, um die Zwischenspeicherungsunterstützung zu Ihrem ASP.NET Projekt in Visual Studio hinzuzufügen. Anweisungen finden Sie unter How to: Prepare Visual Studio to Use Azure In-Role Cache.
Wichtig
Für diese Schritte ist der aktuelle Paket-Manager von NuGet (Version 2.1.31002.9028 oder höher) erforderlich. Um die neuesten NuGet Paket-Manager zu installieren, wechseln Sie zu https://go.microsoft.com/fwlink/?LinkId=240311.
Entfernen Sie ein vorhandenes SessionState-Element , das das Zwischenspeichern des Sitzungszustands konfiguriert. Entfernen Sie nicht den kommentierten SessionState-Abschnitt, der vom NuGet-Paket hinzugefügt wurde.
Deaktivieren Sie in der web.config-Datei den Abschnitt "sessionState ".
<!-- Azure Caching session state provider --> <sessionState mode="Custom" customProvider="AFCacheSessionStateProvider"> <providers> <add name="AFCacheSessionStateProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" applicationName="AFCacheSessionState"/> </providers> </sessionState>
Die folgende Liste stellt optionale Konfigurationsänderungen zur Verfügung, die sich auf den Ausgabecacheanbieter auswirken.
Ändern Sie den gezielten benannten Cache mit dem CacheName-Attribut des Add-Elements .
Ändern Sie die Quelle der Cacheclienteinstellungen mit dem DataCacheClientName-Attribut des Add-Elements . Legen Sie dieses Attribut auf den Namen eines vorhandenen DataCacheClient-Abschnitts in der datei web.config fest.
Ändern Sie das Verhalten des Cacheclients, indem Sie die Einstellungen im zugehörigen DataCacheClient-Abschnitt ändern. Aktivieren Sie z. B. die Komprimierung mit dem Attribut isCompressionEnabled .
<dataCacheClient name="default" isCompressionEnabled="true">
Eine Liste der verfügbaren Konfigurationsoptionen finden Sie unter In-Role Cache Client Configuration Einstellungen (Web.config). Beachten Sie, dass die ASP.NET Anbieter zum Zwischenspeichern keine binären oder benutzerdefinierten Serialisierungstypen unterstützen. Wenn diese Serializer für den Sitzungszustand verwendet werden, tritt die folgende Ausnahme auf: "Typ 'Microsoft.Web.DistributedCache.SerializableSessionStateStoreData' in Assembly 'Microsoft.Web.DistributedCache, Version=101.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ist nicht als serialisierbar gekennzeichnet"
Ändern der Einstellungen für den Sitzungsstatusanbieter. Eine Liste der verfügbaren Konfigurationsoptionen finden Sie unter ASP.NET Konfiguration des Sitzungsstatusanbieters Einstellungen in Azure In-Role Cache.