Esta documentação foi arquivada e não está sendo atualizada.

Provedor de estado da sessão do Cache na Função do Azure

Atualizado: agosto de 2015

ImportantImportante
A Microsoft recomenda que todos os novos desenvolvimentos usem Cache Redis do Azure. Para documentação atual e orientação sobre como escolher uma oferta de Cache do Azure, consulte Qual oferta de Cache do Azure é ideal para mim?

O provedor de estado da sessão do é um mecanismo de armazenamento fora do processo para aplicativos ASP.NET. Esse provedor permite armazenar o estado da sessão em um cache do em vez de usar a memória ou um banco de dados do SQL Server.

Para obter um exemplo de cache de estado da sessão, consulte Exemplo de estado da sessão de cache e cache de saída.

O provedor de estado da sessão do tem as seguintes melhorias em relação aos provedores de estado da sessão ASP.NET anteriores:

  • Ele usa internamente a classe NetDataContractSerializer para serialização de estado da sessão.

  • Ele pode compartilhar o estado da sessão entre diferentes aplicativos ASP.NET.

  • Ele oferece suporte a acesso simultâneo ao mesmo conjunto de estado da sessão para vários leitores e um único gravador.

  • É possível usar compactação por meio das propriedades de cliente de cache.

O uso da classe NetDataContractSerializer para serialização resulta no suporte a uma maior variedade de tipos serializáveis. Isso inclui o suporte a tipos serializáveis binários.

O provedor oferece suporte à capacidade de leitura e gravação dos mesmos dados de estado da sessão por diferentes aplicativos ASP.NET. Por exemplo, digamos que um desenvolvedor tenha dois sites ASP.NET diferentes: /contoso e /adventureworks. O provedor de estado da sessão pode ser configurado em cada aplicativo Web para apontar para o mesmo armazenamento de estado da sessão no cluster de cache. Como resultado, ambos os aplicativos lerão e gravarão os mesmos dados da sessão para qualquer identificador de sessão específico.

O provedor de estado da sessão oferece suporte a acesso simultâneo ao mesmo conjunto de estado da sessão para vários leitores e um único gravador. Leitores, no caso, são definidos como páginas marcadas como usuárias do estado da sessão ReadOnly. Os aplicativos que fazem uso intensivo de retornos de chamada AJAX não experimentarão enfileiramento de solicitações no lado do servidor se a maioria dos padrões de acesso ao estado da sessão do aplicativo exigirem exclusivamente acesso somente leitura ao estado da sessão.

  1. Primeiramente, configure um cache para ser usado com o provedor ASP.NET. O caching pode ser hospedado com uma topologia colocalizada ou com uma função dedicada.

  2. Use NuGet para adicionar suporte de caching ao seu projeto ASP.NET no Visual Studio. Para obter instruções, consulte Como: Preparar o Visual Studio para usar o Cache na Função do Azure.

    ImportantImportante
    Estas etapas exigem a versão mais recente (2.1.31002.9028 ou superior) do gerenciador de pacote NuGet. Para instalar o gerenciador de pacote NuGet mais recente, vá para http://go.microsoft.com/fwlink/?LinkId=240311.

  3. Remova qualquer elemento sessionState existente que configure o armazenamento do estado da sessão em cache. Não remova a seção sessionState comentada que foi adicionada pelo pacote NuGet.

  4. No arquivo web.config, remova a indicação de comentário da seção 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>
    

A lista a seguir relaciona alterações de configuração opcionais que afetam o provedor de cache de saída.

  • Altere o cache nomeado de destino com o atributo cacheName do elemento add.

  • Altere a origem das configurações do cliente de cache com o atributo dataCacheClientName do elemento add. Defina esse atributo com o nome de uma seção dataCacheClient existente no arquivo web.config.

  • Modifique o comportamento do cliente de cache alterando as configurações da seção dataCacheClient associada. Por exemplo, ative a compactação com o atributo isCompressionEnabled.

    <dataCacheClient name="default" isCompressionEnabled="true">
    
    Para obter uma lista das opções de configuração disponíveis, consulte Parâmetros de configuração de cliente de cache na função (Web.config). Observe que os provedores ASP.NET para caching não oferecem suporte a tipos de serialização binários ou personalizados. Se esses serializadores forem usados para o estado da sessão, a seguinte exceção ocorrerá: " Tipo 'Microsoft.Web.DistributedCache.SerializableSessionStateStoreData' no assembly 'Microsoft.Web.DistributedCache, Version=101.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' não está marcado como serializável"

  • Altere as configurações do provedor de estado da sessão. Para obter uma lista das opções de configuração disponíveis, consulte Parâmetros de configuração do provedor de estado da sessão ASP.NET no Cache na Função do Azure.

Consulte também

Mostrar: