Condividi tramite


Procedura: configurare il provider di stato della sessione di AppFabric per ASP.NET (Memorizzazione nella cache di AppFabric 1.1)

In questo argomento viene illustrato come configurare un'applicazione Web ASP.NET per l'utilizzo di una cache di AppFabric con provisioning in cui memorizzare lo stato della sessione. La configurazione viene effettuata modificando il file web.config per l'applicazione Web di destinazione.

Utilizzo di Memorizzazione nella cache di Microsoft AppFabric 1.1 per Windows Server per lo stato della sessione

Per consentire all'applicazione Web ASP.NET di utilizzare il provider di stato della sessione di AppFabric, è necessario aggiungere i seguenti elementi al file web.config dell'applicazione:

  • configSections: deve essere il primo elemento del file di configurazione, sotto il tag di apertura configuration. È necessario per il corretto funzionamento degli assembly di memorizzazione nella cache di AppFabric.

  • dataCacheClients: elemento figlio dell'elemento di configurazione. Viene utilizzato per contenere elementi dataCacheClient che configurano i client della cache e specificano gli host della cache.

  • sessionState: elemento figlio dell'elemento system.web. Indica all'applicazione Web di utilizzare Microsoft AppFabric 1.1 per Windows Server per la gestione dei dati di stato della sessione. L'attributo cacheName specifica la cache denominata che verrà utilizzata. L'attributo dataCacheClientName specifica quale sezione dataCacheClient utilizzare per la configurazione della cache.

Avviso

È consigliabile proteggere il file web.config utilizzato per specificare i nomi degli host della cache.

Per utilizzare la memorizzazione nella cache di Microsoft AppFabric 1.1 per Windows Server per lo stato della sessione

  1. Preparare innanzitutto il progetto di Visual Studio 2010 per l'utilizzo di Memorizzazione nella cache di Microsoft AppFabric 1.1 per Windows Server. Per ulteriori informazioni, vedere Preparazione dell'ambiente di sviluppo del client della cache (Memorizzazione nella cache di AppFabric 1.1).

  2. Oltre ai normali assembly di memorizzazione nella cache, fare riferimento anche all'assembly Microsoft.Web.DistributedCache.dll presente nel percorso di installazione di Memorizzazione nella cache di Microsoft AppFabric 1.1 per Windows Server.

  3. Copiare l'elemento configSections dell'esempio riportato dopo questi passaggi nel file web.config. Verificare che questo sia il primo elemento all'interno dei tag configuration.

  4. Copiare l'elemento dataCacheClients dell'esempio riportato dopo questi passaggi nel file web.config. Tale elemento deve essere aggiunto dopo configSections, all'interno dell'elemento configuration.

    1. Configurare gli attributi name e cachePort degli elementi dell'host in modo che corrispondano ai server della cache presenti nell'ambiente in uso. Aggiungere o rimuovere gli elementi appropriati dell'host.
  5. Copiare l'elemento sessionState dell'esempio riportato dopo questi passaggi nel file web.config. Tale elemento deve essere posizionato all'interno dell'elemento system.web. Specificare gli attributi cacheName e dataCacheClientName e le altre impostazioni richieste.

  6. Determinare l'identità dell'applicazione Web. A tale scopo, utilizzare Gestione IIS nei server Web. Controllare l'identità del pool di applicazioni associato all'applicazione Web. Concedere al pool l'accesso utente al cluster di cache utilizzando il comando di Windows PowerShell Grant-CacheAllowedClientAccount.

    Suggerimento

    Se il pool di applicazioni viene eseguito con un account computer predefinito, ad esempio "NT Authority/Servizio di rete", è necessario concedere a tale computer l'accesso al cluster di cache. È possibile effettuare questa operazione specificando NOMEDOMINIO\NOMECOMPUTER$ come account. Il simbolo "$" viene aggiunto in fondo al nome del computer per indicare che si tratta dell'account del computer.

Esempio

In questo esempio viene illustrato come configurare un'applicazione Web ASP.NET in modo che utilizzi un client della cache per la memorizzazione dei dati sulla sessione in una cache distribuita denominata default. Il client della cache di questo esempio è configurato per la comunicazione con un solo host della cache denominato CacheServer1.

  1. Aggiungere innanzitutto l'elemento configSections al file web.config come primo elemento dell'elemento configuration:

      <!--configSections must be the FIRST element -->
      <configSections>
        <section name="dataCacheClients"
                 type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core"
                 allowLocation="true" allowDefinition="Everywhere"/>
      </configSections>
    
  2. Aggiungere quindi l'elemento singolo dataCacheClients contenente uno o più elementi dataCacheClient al file web.config, dopo l'elemento configSections. Questo consente di configurare il client della cache in modo da soddisfare le richieste dell'applicazione. Per ulteriori informazioni, vedere Impostazioni di configurazione dell'applicazione (Memorizzazione nella cache di AppFabric 1.1).

      <dataCacheClients>
        <dataCacheClient name="default">
          <hosts>
            <host name="CacheServer1" cachePort="22233" />
          </hosts>
        </dataCacheClient>
      </dataCacheClients>
    
  3. Dopo aver aggiunto gli elementi configSections e dataCacheClients, aggiungere l'elemento sessionState al file web.config, all'interno dell'elemento system.web. Questo consente di specificare quale cache verrà utilizzata dall'applicazione Web per memorizzare i dati di stato della sessione. Personalizzare gli attributi cacheName e dataCacheClientName e le altre impostazioni richieste.

    Se più applicazioni Web devono condividere lo stesso stato della sessione, devono utilizzare lo stesso valore dell'attributo applicationNamme. In caso contrario, non è necessario specificare l'attributo applicationNamme.

        <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider" compressionEnabled="false">
          <providers>
            <add name="AppFabricCacheSessionStoreProvider"
                 type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
                 cacheName="default"
                 useBlobMode="true"
                 dataCacheClientName="default"/>
          </providers>
        </sessionState>
    

Al termine della procedura, il file web.config finale dell'applicazione Web avrà un aspetto simile all'esempio riportato di seguito.

<?xml version="1.0"?>

<configuration>
  <configSections>
    <section name="dataCacheClients"
             type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core"
             allowLocation="true" allowDefinition="Everywhere"/>
  </configSections>

  <dataCacheClients>
    <dataCacheClient name="default" channelOpenTimeout="10000">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
      </hosts>
    </dataCacheClient>
  </dataCacheClients>
  
  <system.web>
    <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider" compressionEnabled="false">
      <providers>
        <add name="AppFabricCacheSessionStoreProvider"
             type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
             cacheName="default"
             useBlobMode="true"
             dataCacheClientName="default"/>
      </providers>
    </sessionState>
  </system.web>
</configuration>

Vedere anche

Concetti

Provider di stato della sessione (Memorizzazione nella cache di AppFabric 1.1)

  2012-03-05