Share via


Provider di stato della sessione per Cache nel ruolo di Azure

Importante

Microsoft consiglia tutti i nuovi sviluppi di usare Cache Redis di Azure. Per la documentazione e le indicazioni correnti sulla scelta di un'offerta di Cache di Azure, vedere Quale offerta di Cache di Azure è adatta per l'utente?

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

Per un esempio di memorizzazione nella cache dello stato della sessione, vedere Caching esempio di stato sessione e output Caching.

Funzionalità

Il provider di stato della sessione presenta i miglioramenti seguenti rispetto ai provider di stato della sessione ASP.NET precedenti:

  • 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. Si supponga, ad esempio, che uno sviluppatore abbia due siti ASP.NET diversi: /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.

Per aggiungere il provider di stato della sessione a un progetto ASP.NET

  1. Configurare prima una cache da usare con il provider ASP.NET. È possibile ospitare la memorizzazione nella cache con una topologia con percorso condiviso o con un ruolo dedicato.

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

    Importante

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

  3. Rimuovere qualsiasi elemento sessionState esistente che configura la memorizzazione nella cache dello stato della sessione. Non rimuovere la sezione sessionState commentata aggiunta dal pacchetto NuGet.

  4. Nel file web.config rimuovere il 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.

  • Modificare la cache denominata di destinazione con l'attributo cacheName dell'elemento add .

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

  • Modificare il comportamento del client della cache modificando le impostazioni nella sezione dataCacheClient associata. Ad esempio, abilitare la compressione con l'attributo isCompressionEnabled .

    <dataCacheClient name="default" isCompressionEnabled="true">
    

    Per un elenco delle opzioni di configurazione disponibili, vedere Configurazione client cache nel ruolo Impostazioni (Web.config).For a list of available configuration options, see In-Role Cache Client Configuration Impostazioni (Web.config). Si noti che i provider di ASP.NET per la memorizzazione nella cache non supportano tipi di serializzazione binari o personalizzati. Se questi serializzatori vengono utilizzati per lo stato della sessione, si verifica l'eccezione seguente: "Tipo 'Microsoft.Web.DistributedCache.SerializableSessionStateStoreData' nell'assembly 'Microsoft.Web.DistributedCache, Version=101.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' non è contrassegnato come serializable"

  • Modifica delle impostazioni del provider di stato della sessione. Per un elenco delle opzioni di configurazione disponibili, vedere ASP.NET Session State Provider Configuration Impostazioni in Azure In-Role Cache.

Contenuto della sezione

Vedere anche

Concetti

Provider di cache ASP.NET 4 per Cache nel ruolo di Azure