Questa documentazione è stata archiviata e non viene gestita.

Provider di stato della sessione per Cache nel ruolo di Azure

Aggiornamento: agosto 2015

ImportantImportante
Si consiglia ai clienti di usare Cache Redis di Azure in tutte le nuove distribuzioni. Per informazioni e istruzioni sulla scelta dell'offerta di Cache di Azure, vedere Qual è l'offerta di Cache di Azure più adatta alle mie esigenze?

Il provider di stato della sessione di è un meccanismo di memorizzazione out-of-process specifico per le applicazioni ASP.NET. Tale provider consente di memorizzare lo stato della sessione in una cache di anziché in memoria o in un database di SQL Server.

Per un esempio di memorizzazione nella cache dello stato della sessione, vedere la pagina dell'esempio di memorizzazione nella cache dello stato della sessione e dell'output in Caching.

Rispetto ai precedenti provider di stato della sessione ASP.NET, il provider di stato della sessione di presenta i seguenti miglioramenti:

  • Uso interno della classe NetDataContractSerializer per la serializzazione dello stato della sessione.

  • Capacità di condivisione dello stato della sessione tra diverse applicazioni ASP.NET.

  • Supporto dell'accesso simultaneo di più lettori e un unico scrittore allo stesso set di stato della sessione.

  • Possono usare la compressione nelle proprietà del client della cache.

L'uso della classe NetDataContractSerializer per la serializzazione consente di supportare una gamma più ampia di tipi serializzabili, inclusi i tipi binari.

Il provider consente ad applicazioni ASP.NET diverse di leggere e scrivere gli stessi dati di stato della sessione. Se ad esempio sono stati sviluppati due diversi siti ASP.NET, /contoso e /adventureworks, è possibile configurare il provider di stato della sessione di ciascuna applicazione Web in modo che punti allo stesso archivio dello stato della sessione nel cluster di cache. Di conseguenza, entrambe le applicazioni saranno in grado di leggere e scrivere gli stessi dati per qualsiasi identificatore di sessione.

Il provider di stato della sessione supporta l'accesso simultaneo di più lettori e un unico scrittore allo stesso set di stato della sessione. In questo caso, i lettori sono definiti come pagine contrassegnate per l'uso dello stato della sessione ReadOnly. Se la maggior parte dei modelli di accesso allo stato della sessione delle applicazioni richiede l'accesso di sola lettura, nelle applicazioni che usano ampiamente i callback AJAX non si verificheranno code di richieste sul lato server.

  1. Configurare prima una cache da usare con il provider ASP.NET. È possibile ospitare memorizzazione nella cache con una topologia basata su risorse condivise o con un ruolo dedicato.

  2. Usare NuGet per aggiungere il supporto di memorizzazione nella cache al progetto ASP.NET in Visual Studio. Per istruzioni, vedere Procedura: Preparare Visual Studio per l'uso di Cache nel ruolo di Azure.

    ImportantImportante
    La seguente procedura richiede la versione di Gestione pacchetti NuGet più recente (2.1.31002.9028 o successiva). Per installare la versione di Gestione pacchetti NuGet più recente, accedere alla pagina http://go.microsoft.com/fwlink/?LinkId=240311.

  3. Rimuovere eventuali elementi sessionState esistenti che configurano la memorizzazione nella cache dello stato della sessione. Non rimuovere la sezione con commenti sessionState aggiunta dal pacchetto NuGet.

  4. Nel file web.config rimuovere i simboli di commento dalla sezione sessionState.

        <!-- Azure Caching session state provider -->
        <sessionState mode="Custom" customProvider="AFCacheSessionStateProvider">
          <providers>
            <add name="AFCacheSessionStateProvider" 
              type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
              cacheName="default" 
              dataCacheClientName="default" 
              applicationName="AFCacheSessionState"/>
          </providers>
        </sessionState>
    

Il seguente elenco include le modifiche facoltative della configurazione che influiscono sul provider della cache di output.

  • Modifica della cache denominata individuata con l'attributo cacheName dell'elemento add.

  • Modifica dell'origine delle impostazioni del client della cache usando l'attributo dataCacheClientName dell'elemento add. Impostare questo attributo sul nome di una sezione dataCacheClient esistente nel file web.config.

  • Modifica del comportamento del client della cache usando le impostazioni nella sezione dataCacheClient associata. È ad esempio possibile abilitare la compressione usando l'attributo isCompressionEnabled.

    <dataCacheClient name="default" isCompressionEnabled="true">
    
    Per un elenco delle opzioni di configurazione disponibili, vedere Impostazioni di configurazione del client di Cache nel ruolo (Web.config). Tenere presente che i provider ASP.NET per memorizzazione nella cache non supportano i tipi con serializzazione personalizzata o binaria. Se questi serializzatori vengono usati per lo stato della sessione, si verifica la seguente eccezione: " Il tipo 'Microsoft.Web.DistributedCache.SerializableSessionStateStoreData' nell'assembly 'Microsoft.Web.DistributedCache, Version=101.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' non è contrassegnato come serializzabile"

  • Modifica delle impostazioni del provider di stato della sessione. Per un elenco delle opzioni di configurazione disponibili, vedere Impostazioni di configurazione del provider di stato della sessione di ASP.NET in Cache nel ruolo di Azure.

Vedere anche

Mostra: