Freigeben über


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 Tag configuration 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 Attribut cacheName gibt den benannten Cache an, der verwendet wird. Wenn Sie Sitzungsdaten in einem Cachebereich speichern, verwenden Sie das Attribut regionName, 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

  1. Kopieren Sie das Element configSections aus dem Beispiel unten in Ihre Datei web.config. Stellen Sie sicher, dass dieses Element das erste Element innerhalb der configuration-Tags ist.

  2. Kopieren Sie das Element dataCacheClient aus dem Beispiel unten in Ihre Datei web.config. Es sollte hinter dem Element configSections innerhalb des Elements configuration hinzugefügt werden.

    1. Konfigurieren Sie die Attribute name und cachePort der Hostelemente so, dass sie den Cacheservern in Ihrer Umgebung entsprechen. Fügen Sie Hostelemente nach Bedarf hinzu, oder entfernen Sie diese.
  3. Kopieren Sie das Element sessionState aus dem Beispiel unten in Ihre Datei web.config. Es sollte innerhalb des Elements system.web positioniert werden.

  4. 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