Share via


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

Importante

A Microsoft recomenda que todos os novos desenvolvimentos usem o Cache Redis do Azure. Para obter documentação e diretrizes atuais sobre como escolher uma oferta do Cache do Azure, confira qual oferta do Cache do Azure é certa para mim?

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

Para obter um exemplo de cache de estado de sessão, consulte Caching Estado da Sessão e Exemplo de Caching de Saída.

Funcionalidades

O provedor de estado de sessão tem os seguintes aprimoramentos nos provedores de estado de 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 de 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.

Para adicionar o provedor de estado da sessão a um projeto ASP.NET

  1. Primeiramente, configure um cache para ser usado com o provedor ASP.NET. Você pode hospedar o cache com uma topologia co-localizada ou com uma função dedicada.

  2. Use NuGet para adicionar suporte ao cache ao seu projeto ASP.NET no Visual Studio. Para obter instruções, consulte Como preparar Visual Studio para usar o Cache In-Role do Azure.

    Importante

    Estas etapas exigem a versão mais recente (2.1.31002.9028 ou superior) do gerenciador de pacote NuGet. Para instalar o NuGet Gerenciador de Pacotes mais recente, acesse https://go.microsoft.com/fwlink/?LinkId=240311.

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

  4. No arquivo web.config, descompacte a 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 como o nome de uma seção dataCacheClient existente no arquivo web.config.

  • Modifique o comportamento do cliente de cache alterando as configurações na seção dataCacheClient associada. Por exemplo, habilite 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 Configurações de Configuração do Cliente em Cache em Função (Web.config). Observe que os provedores de ASP.NET para cache não dão 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á: "Digite '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 ASP.NET Configurações de Configuração do Provedor de Estado de Sessão no Cache In-Role do Azure.

Nesta seção

Consulte Também

Conceitos

Provedores de cache ASP.NET 4 para o Cache na Função do Azure