Konfigurieren eines ASP.NET-Sitzungsstatusanbieters (Windows Server AppFabric-Cache)
Windows Server AppFabric stellt einen benutzerdefinierten Sitzungsstatusanbieter für Ihre ASP.NET-Webanwendungen zur Verfügung. Auf diese Weise können Webanwendungen Sitzungsobjekte im Cachecluster verteilen und Skalierbarkeit bereitstellen. Aufgrund der Struktur der Cachefeatures von AppFabric müssen Objekte, die in Session gespeichert werden, serialisierbar sein.
Für die Verfahren in diesem Thema wird angenommen, dass die Entwicklungsumgebung der Webanwendung bereits vorbereitet wurde, die Verweise auf die AppFabric-Cacheassemblys festgelegt wurden usw. Weitere Informationen finden Sie unter Vorbereiten der Cacheclient-Entwicklungsumgebung (Windows Server AppFabric-Cache).
Damit Ihre ASP.NET-Webanwendung den AppFabric-Sitzungsstatusanbieter verwenden kann, müssen Sie der Datei web.config Ihrer Webanwendung die folgenden Elemente hinzufügen:
configSections
: Dieses Element muss das erste Element in der Konfigurationsdatei unter dem öffnenden Tagconfiguration
sein. Es ist erforderlich, damit die AppFabric-Cacheassemblys funktionieren.dataCacheClient
: Dieses Element ist ein untergeordnetes Element des Konfigurationselements. Es wird zum Konfigurieren des Cacheclients und zum Angeben des Cachehosts verwendet. Weitere Informationen zum Cacheclient finden Sie unter Entwickeln eines Cacheclients (Windows Server AppFabric-Cache).sessionState
: Dieses Element ist ein untergeordnetes Element des Elements system.web. Es weist die Webanwendung an, AppFabric zum Verwalten des Sitzungsstatus zu verwenden. Das AttributcacheName
gibt den benannten Cache an, der verwendet wird. Wenn Sie Sitzungsdaten in einem Cachebereich speichern, verwenden Sie das AttributregionName
, um den Bereich anzugeben.
Hinweis
Für in einem Bereich gespeicherte Objekte wird auf Cachehosts kein Lastenausgleich ausgeführt. Sie werden auf dem Cachehost gespeichert, auf dem der Bereich erstellt wurde. Aus diesem Grund handelt es sich nicht um eine allgemein zu empfehlende Konfiguration. Bereiche sollten nur verwendet werden, wenn die besondere Anforderung besteht, alle Sitzungsobjekte auf einem einzigen Host zu suchen.
Warnung
Es wird dringend empfohlen, die zum Angeben der Namen der Cachehosts verwendete Datei web.config zu sichern.
So konfigurieren Sie einen AppFabric-Sitzungsstatusanbieter für Ihre Webanwendung
Kopieren Sie das Element
configSections
aus dem Beispiel unten in Ihre Datei web.config. Stellen Sie sicher, dass dieses Element das erste Element innerhalb derconfiguration
-Tags ist.Kopieren Sie das Element
dataCacheClient
aus dem Beispiel unten in Ihre Datei web.config. Es sollte hinter dem ElementconfigSections
innerhalb des Elementsconfiguration
hinzugefügt werden.- Konfigurieren Sie die Attribute
name
undcachePort
der Hostelemente so, dass sie den Cacheservern in Ihrer Umgebung entsprechen. Fügen Sie Hostelemente nach Bedarf hinzu, oder entfernen Sie diese.
- Konfigurieren Sie die Attribute
Kopieren Sie das Element
sessionState
aus dem Beispiel unten in Ihre Datei web.config. Es sollte innerhalb des Elementssystem.web
positioniert werden.Bestimmen der Identität der Webanwendung. Dies kann in IIS-Manager auf den Webservern erfolgen. Betrachten Sie die Identität des Anwendungspools, der der Webanwendung zugeordnet ist. Erteilen Sie diesem Benutzer mithilfe des Windows PowerShell-Befehls
Grant-CacheAllowedClientAccount
Zugriff auf den Cachecluster.Tipp
Wenn der Anwendungspool als integriertes Computerkonto, wie etwa „NT-AUTORITÄT\Netzwerkdienst“, ausgeführt wird, sollte dem betreffenden Computer Zugriff auf den Cachecluster erteilt werden. Dies kann dadurch erfolgen, dass DOMAENENNAME\COMPUTERNAME$ als Konto angegeben wird. Beachten Sie, dass „$“ an den Computernamen angefügt wird, um anzugeben, dass es sich um das Computerkonto handelt.
Beispiel
Dieses Beispiel zeigt, wie eine ASP.NET-Webanwendung für die Verwendung eines Cacheclients zum Speichern von Sitzungsdaten in einem verteilten Cache namens NamedCache1
konfiguriert wird. Der Cacheclient in diesem Beispiel ist nur zum Kommunizieren mit einem Cachehost mit dem Namen CacheServer1
konfiguriert.
Fügen Sie der Datei web.config zuerst das Element configSections
als erstes Element im Element configuration
hinzu:
<!--configSections must be the FIRST element -->
<configSections>
<!-- required to read the <dataCacheClient> element -->
<section name="dataCacheClient"
type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
allowLocation="true"
allowDefinition="Everywhere"/>
</configSections>
Fügen Sie dann der Datei web.config das Element dataCacheClient
hinter dem Element configSections
hinzu. Auf diese Weise konfigurieren Sie den Cacheclient so, dass die Anforderungen Ihrer Anwendung erfüllt werden. Weitere Informationen finden Sie unter Anwendungskonfigurationseinstellungen (Windows Server AppFabric-Cache).
<!-- cache client -->
<dataCacheClient>
<!-- cache host(s) -->
<hosts>
<host
name="CacheServer1"
cachePort="22233"/>
</hosts>
</dataCacheClient>
Nachdem die Elemente configSections
und dataCacheClient
hinzugefügt wurden, fügen Sie der Datei web.config das Element sessionState
innerhalb des Elements system.web
hinzu. Auf diese Weise geben Sie an, welcher Cache von der Webanwendung zum Speichern von Sitzungsstatusdaten verwendet wird.
Beachten Sie, dass der gleiche Attributwert sharedId
verwendet werden sollte, wenn mehrere Webanwendungen den gleichen Sitzungsstatus gemeinsam verwenden müssen. Andernfalls muss das sharedId
-Attribut nicht angegeben werden.
<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
<providers>
<!-- specify the named cache for session data -->
<add
name="AppFabricCacheSessionStoreProvider"
type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider"
cacheName="NamedCache1"
sharedId="SharedApp"/>
</providers>
</sessionState>
Nach der Fertigstellung ähnelt die endgültige Datei web.config der Webanwendung dem folgenden Beispiel.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--configSections must be the FIRST element -->
<configSections>
<!-- required to read the <dataCacheClient> element -->
<section name="dataCacheClient"
type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
allowLocation="true"
allowDefinition="Everywhere"/>
</configSections>
<!-- cache client -->
<dataCacheClient>
<!-- cache host(s) -->
<hosts>
<host
name="CacheServer1"
cachePort="22233"/>
</hosts>
</dataCacheClient>
<system.web>
<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
<providers>
<!-- specify the named cache for session data -->
<add
name="AppFabricCacheSessionStoreProvider"
type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider"
cacheName="NamedCache1"
sharedId="SharedApp"/>
</providers>
</sessionState>
</system.web>
</configuration>
Siehe auch
Konzepte
Erste Schritte mit einem Windows Server AppFabric-Cacheclient (XML)
Verwenden von Konfigurationsmethoden (Windows Server AppFabric-Cache)
Windows Server AppFabric-Cachekonzepte
Entwickeln eines Cacheclients (Windows Server AppFabric-Cache)
2011-12-05