Configurazione di un provider di stato della sessione ASP.NET (Memorizzazione nella cache di Windows Server AppFabric)
Windows Server AppFabric offre un provider di stato della sessione personalizzato per le applicazioni Web ASP.NET. Questo consente alle applicazioni Web di distribuire gli oggetti di sessione all'interno del cluster di cache, assicurando così la scalabilità. A causa della natura delle funzionalità di memorizzazione nella cache di AppFabric, gli oggetti che si inseriscono in Session devono essere serializzabili.
Ai fini delle procedure descritte in questo argomento, si presuppone che l'ambiente di sviluppo delle applicazioni Web sia già stato preparato, che siano stati definiti riferimenti agli assembly di memorizzazione nella cache di AppFabric e così via. Per ulteriori informazioni, vedere Preparazione dell'ambiente di sviluppo del client cache (Memorizzazione nella cache di Windows Server AppFabric).
Per consentire alle applicazioni Web ASP.NET di utilizzare il provider di stato della sessione di AppFabric, è necessario aggiungere gli elementi seguenti al file web.config dell'applicazione:
configSections
: questo elemento deve essere il primo elemento del file di configurazione, sotto il tag di aperturaconfiguration
. È infatti necessario al funzionamento degli assembly di memorizzazione nella cache di AppFabric.dataCacheClient
: elemento figlio dell'elemento di configurazione. Viene utilizzato per configurare il client della cache e specificare gli host della cache. Per ulteriori informazioni sul client della cache, vedere Sviluppo di un client cache (Memorizzazione nella cache di Windows Server AppFabric).sessionState
: elemento figlio dell'elemento system.web. Indica all'applicazione Web di utilizzare AppFabric per gestire gli stati della sessione. L'attributocacheName
specifica quale cache denominata utilizzare. Se si archiviano dati di sessione in un'area della cache, specificarla utilizzando l'attributoregionName
.
Nota
Per gli oggetti archiviati in un'area non viene eseguito il bilanciamento del carico tra gli host della cache, ma vengono posizionati nell'host della cache in cui l'area è stata creata. Per questo motivo, si tratta di una configurazione generalmente sconsigliata. Le aree devono essere utilizzate solo quando esiste una particolare esigenza di posizionare tutti gli oggetti di sessione su un unico host.
Avviso
È consigliabile proteggere il file web.config utilizzato per specificare i nomi degli host della cache.
Per configurare un provider di stato della sessione di AppFabric per un'applicazione Web
Copiare l'elemento
configSections
dell'esempio dopo questi passaggi nel file web.config. Verificare che questo sia il primo elemento all'interno dei tagconfiguration
.Copiare l'elemento
dataCacheClient
dell'esempio dopo questi passaggi nel file web.config. Deve essere aggiunto dopo l'elementoconfigSections
, 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 dopo questi passaggi nel file web.config. Questo deve essere posizionato all'interno dell'elementosystem.web
.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 a tale utente l'accesso al cluster della cache utilizzando il comando
Grant-CacheAllowedClientAccount
di Windows PowerShell.Suggerimento
Se il pool di applicazioni viene eseguito con un account computer predefinito, ad esempio "NT Authority/Servizio di rete", è necessario concedere l'accesso al cluster della cache per tale computer. È possibile effettuare questa operazione specificando NOMEDOMINIO\NOMECOMPUTER$ come account. Si noti che "$" viene accodato 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 archiviare i dati di sessione in una cache distribuita chiamata NamedCache1
. Il client della cache di questo esempio è configurato per comunicare solo con un host della cache denominato CacheServer1
.
Innanzitutto, aggiungere l'elemento configSections
al file web.config come primo elemento dell'elemento 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>
Quindi, aggiungere l'elemento dataCacheClient
al file web.config dopo l'elemento configSections
. Questo consente di configurare il client della cache in modo da soddisfare le esigenze dell'applicazione. Per ulteriori informazioni, vedere Impostazioni di configurazione dell'applicazione (Memorizzazione nella cache di Windows Server AppFabric).
<!-- cache client -->
<dataCacheClient>
<!-- cache host(s) -->
<hosts>
<host
name="CacheServer1"
cachePort="22233"/>
</hosts>
</dataCacheClient>
Dopo aver aggiunto gli elementi configSections
e dataCacheClient
, 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 archiviare i dati di stato della sessione.
Si noti che se più applicazioni Web devono condividere lo stesso stato di sessione e devono utilizzare lo stesso valore dell'attributo sharedId
. In caso contrario, non è necessario specificare l'attributo sharedId
.
<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>
Una volta completato, il file web.config finale dell'applicazione Web è simile all'esempio seguente.
<?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>
Vedere anche
Concetti
Introduzione a un client cache Windows Server AppFabric (XML)
Utilizzo dei metodi di configurazione (Memorizzazione nella cache di Windows Server AppFabric)
Concetti di memorizzazione nella cache di AppFabric
Sviluppo di un client cache (Memorizzazione nella cache di Windows Server AppFabric)
2011-12-05