Como configurar um cliente de cache para o Azure Serviço de Cache Gerenciado

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 de Cache do Azure, confira qual oferta do Cache do Azure é ideal para mim?

Serviço de Cache Gerenciado facilita a configuração de clientes de cache fornecendo um pacote NuGet para adicionar as referências de assembly e a configuração necessárias. O pacote NuGet de cache também fornece seções desativadas por comentários no web.config para que os projetos web possam ativar provedores de estado da sessão de cache e de cache de saída de página. Este tópico fornece instruções passo a passo para a configuração de clientes de cache usando o pacote NuGet de cache.

Neste tópico

  • Configurar um cliente de cache usando o pacote NuGet de cache

  • Usar o provedor de estado da sessão em um projeto ASP.NET

  • Usar o provedor de cache de saída em um projeto ASP.NET

Configurar um cliente de cache usando o pacote NuGet de cache

Configurar Serviço de Cache Gerenciado aplicativos cliente é fácil. Serviço de Cache Gerenciado fornece um pacote NuGet para adicionar as referências de configuração e assembly necessárias para permitir que os clientes de cache acessem um cache.

Observação

Serviço de Cache Gerenciado dá suporte a sites do Azure, Serviços de Nuvem e Máquinas Virtuais aplicativos cliente. As etapas de configuração desses diferentes tipos de aplicativo cliente são muito semelhantes, com algumas pequenas diferenças. O pacote NuGet de cache fornecido lida automaticamente com a maioria dessas diferenças, que são descritas em vários pontos deste tópico. Para obter um resumo das diferenças, consulte Tipos de Aplicativo cliente do Serviço de Cache.

Se você estiver criando um aplicativo de serviços de nuvem, baixe o nsure que você está usando o SDK do Azure versão 2.1 ou superior. Se você estiver criando aplicativos clientes de sites do Azure ou de máquinas virtuais, o pacote NuGet de cache instalará tudo o que é necessário para começar.

Importante

Estas etapas exigem a versão 2.6.40627.9000 ou superior do gerenciador de pacote NuGet. Para instalar o NuGet Gerenciador de Pacotes mais recente, consulte NuGet Gerenciador de Pacotes.

Para usar o pacote Serviço de Cache Gerenciado NuGet, clique com o botão direito do mouse no projeto cliente no Gerenciador de Soluções e escolha Gerenciar pacotes NuGet.

Selecione Cache do Azure, clique em Instalar e, em seguida, clique em Aceito. Depois que o pacote for instalado no projeto cliente, clique em Fechar para fechar a janela Gerenciar Pacotes NuGet.

Observação

Se Cache do Azure não aparecer na lista, digite WindowsAzure.Caching na caixa de texto Pesquisar Online.

Windows Azure Cache NuGet Package

Quando o pacote de Serviço de Cache Gerenciado NuGet é instalado em um projeto cliente, ele adiciona as referências de configuração e assembly necessárias para que o aplicativo cliente possa acessar o cache.

Vários itens são adicionados ao arquivo web.config ou app.config do projeto cliente.

  1. Duas seções são adicionadas ao configSections, denominadas dataCacheClients e cacheDiagnostics.

    <!-- Non-cache sections omitted for space -->
      <configSections>
        <section name="dataCacheClients" 
            type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
    
        <section name="cacheDiagnostics" 
            type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
      </configSections>
    
  2. Uma seção dataCacheClients é adicionada à seção configuration.

    <!-- Non-cache sections omitted for space -->
      <dataCacheClients>
        <dataCacheClient name="default">
          <!--To use the in-role flavor of Azure Caching, set identifier to be the cache cluster role name -->
          <!--To use the Azure Caching Service, set identifier to be the endpoint of the cache cluster -->
          <autoDiscover
            isEnabled="true" 
            identifier="[Cache role name or Service Endpoint]" />
          <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
          <!--Use this section to specify security settings for connecting to your cache. 
              This section is not required if your cache is hosted on a role that is a part 
              of your cloud service. -->
          <!--<securityProperties mode="Message" sslEnabled="false">
            <messageSecurity authorizationInfo="[Authentication Key]" />
          </securityProperties>-->
        </dataCacheClient>
      </dataCacheClients>
    

    Substitua [Nome da função de cache ou ponto de extremidade de serviço] pela URL do ponto de extremidade que é exibida no Painel de Cache no Portal de Gerenciamento.

    Endpoint URL for Windows Azure Cache Service
    Neste exemplo, o cache é chamado applicationcache e a URL do ponto de extremidade é applicationcache.cache.windows.net.

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    

    Descompacte a seção securityProperties e substitua [Chave de Autenticação] pela chave de autenticação.

    <!--Use this section to specify security settings for connecting to your cache. 
        This section is not required if your cache is hosted on a role that is a part 
        of your cloud service. -->
    <!--<securityProperties mode="Message" sslEnabled="false">
      <messageSecurity authorizationInfo="[Authentication Key]" />
    </securityProperties>-->
    

    A chave de autenticação pode ser encontrada no Portal de Gerenciamento clicando em Chaves de Acesso no painel de cache.

    Manage Access Keys for Windows Azure Cache Service

    Aviso

    Essas configurações devem ser definidas corretamente ou os clientes não poderão acessar o cache.

Para projetos de serviços de nuvem, o pacote Serviço de Cache Gerenciado NuGet também adiciona uma configuração ClientDiagnosticLevel à ConfigurationSettings função de cliente de cache em ServiceConfiguration.cscfg. O exemplo a seguir é a WebRole1 seção de um ServiceConfiguration.cscfg arquivo com ClientDiagnosticLevel de 1, que é o ClientDiagnosticLevel padrão.

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for space... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>

Observação

Para obter mais informações sobre níveis de diagnóstico de cache, consulte Sobre ClientDiagnosticLevel para Serviço de Cache Gerenciado do Azure.

Além de adicionar a configuração necessária, o pacote Serviço de Cache Gerenciado NuGet também adiciona as referências de assembly a seguir.

  • Microsoft.ApplicationServer.Caching.Client.dll

  • Microsoft.ApplicationServer.Caching.Core.dll

  • Microsoft.ApplicationServer.Caching.AzureCommon.dll

  • Microsoft.ApplicationServer.Caching.AzureClientHelper.dll

  • Microsoft.WindowsFabric.Common.dll

  • Microsoft.WindowsFabric.Data.Common.dll

Em um projeto Web, a seguinte referência a assembly também é adicionada.

  • Microsoft.Web.DistributedCache.dll

Usar o provedor de estado da sessão em um projeto ASP.NET

O provedor de estado de sessão do Cache Microsoft Azure é um mecanismo de armazenamento fora do processo para aplicativos ASP.NET. Esse provedor permite armazenar o estado da sessão em um cache em vez de usar a memória ou um banco de dados do SQL Server. Quando você usa o pacote NuGet de cache para ativar o armazenamento em cache, ele adiciona uma seção desativada por comentários para ativar o provedor de estado da sessão de cache.

  1. Primeiro, configure um cache para usar com o provedor de ASP.NET, conforme descrito na seção Configurar um Cliente de Cache anterior usando a seção pacote Caching NuGet.

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

  3. 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 estado da sessão.

  • 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">
      <!-- Other cache settings omitted -->
    </dataCacheClient>
    

    Para obter uma lista de opções de configuração disponíveis, consulte Configurações de Configuração do Cliente de Cache para Serviço de Cache Gerenciado do Azure. 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á: "Tipo 'Microsoft.Web.DistributedCache.SerializableSessionStateStoreData' no Assembly 'Microsoft.Web.DistributedCache, Version=101.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' não é marcado como serializável"

  • Altere as configurações do provedor de estado da sessão. Para obter uma lista de opções de configuração disponíveis, consulte ASP.NET Configurações de Configuração do Provedor de Estado de Sessão para a Serviço de Cache Gerenciado do Azure.

Usar o provedor de cache de saída em um projeto ASP.NET

O provedor de cache de saída do Cache Microsoft Azure é um mecanismo de armazenamento fora do processo para dados de cache de saída. Esses dados são usados especificamente para respostas HTTP completas (cache de saída de página). O provedor se conecta ao novo ponto de extensibilidade do provedor de cache de saída que foi apresentado no ASP.NET 4. Quando você usa o pacote Caching NuGet para o cache habilitado, ele adiciona uma seção comentada para habilitar o provedor de Saída da Página de Cache.

  1. Primeiro, configure um cache para usar com o provedor de ASP.NET, conforme descrito na seção Configurar um Cliente de Cache anterior usando a seção pacote Caching NuGet.

  2. Use NuGet para adicionar suporte de cache ao seu projeto de ASP.NET em Visual Studio.

    Importante

    Estas etapas exigem a versão mais recente (2.6.40627.9000 ou superior) do gerenciador de pacote NuGet. Para instalar o NuGet Gerenciador de Pacotes mais recente, consulte NuGet Gerenciador de Pacotes.

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

  4. No arquivo web.config, descompacte a seção de cache .

        <!-- Azure Caching output caching provider -->
        <!--Uncomment this section to use Azure Caching for output caching-->
        <!--<caching>
          <outputCache defaultProvider="AFCacheOutputCacheProvider">
            <providers>
              <add name="AFCacheOutputCacheProvider" 
                type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache"
                cacheName="default"
                dataCacheClientName="default"
                applicationName="AFCacheOutputCache" />
            </providers>
          </outputCache>
        </caching>-->
    

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 de opções de configuração disponíveis, consulte Configurações de Configuração do Cliente de Cache para Serviço de Cache Gerenciado do Azure. Observe que os provedores de ASP.NET para cache não dão suporte a tipos de serialização binários ou personalizados.

  • Altere as configurações do provedor de cache de saída. Para obter uma lista de opções de configuração disponíveis, consulte ASP.NET Configurações de configuração do provedor de cache de saída da página para Serviço de Cache Gerenciado do Azure.