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 aperturaconfiguration
. È necessario per il corretto funzionamento degli assembly di memorizzazione nella cache di AppFabric.dataCacheClients
: elemento figlio dell'elemento di configurazione. Viene utilizzato per contenere elementidataCacheClient
che configurano i client della cache e specificano gli host della cache.sessionState
: elemento figlio dell'elementosystem.web
. Indica all'applicazione Web di utilizzare Microsoft AppFabric 1.1 per Windows Server per la gestione dei dati di stato della sessione. L'attributocacheName
specifica la cache denominata che verrà utilizzata. L'attributodataCacheClientName
specifica quale sezionedataCacheClient
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
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).
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.
Copiare l'elemento
configSections
dell'esempio riportato dopo questi passaggi nel file web.config. Verificare che questo sia il primo elemento all'interno dei tagconfiguration
.Copiare l'elemento
dataCacheClients
dell'esempio riportato dopo questi passaggi nel file web.config. Tale elemento deve essere aggiunto dopoconfigSections
, all'interno dell'elementoconfiguration
.- Configurare gli attributi
name
ecachePort
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.
- Configurare gli attributi
Copiare l'elemento
sessionState
dell'esempio riportato dopo questi passaggi nel file web.config. Tale elemento deve essere posizionato all'interno dell'elementosystem.web
. Specificare gli attributicacheName
edataCacheClientName
e le altre impostazioni richieste.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
.
Aggiungere innanzitutto l'elemento
configSections
al file web.config come primo elemento dell'elementoconfiguration
:<!--configSections must be the FIRST element --> <configSections> <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere"/> </configSections>
Aggiungere quindi l'elemento singolo
dataCacheClients
contenente uno o più elementidataCacheClient
al file web.config, dopo l'elementoconfigSections
. 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>
Dopo aver aggiunto gli elementi
configSections
edataCacheClients
, aggiungere l'elementosessionState
al file web.config, all'interno dell'elementosystem.web
. Questo consente di specificare quale cache verrà utilizzata dall'applicazione Web per memorizzare i dati di stato della sessione. Personalizzare gli attributicacheName
edataCacheClientName
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'attributoapplicationNamme
.<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