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

Como: Configurar um cliente de cache para o serviço de cache gerenciado 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 Serviço de cache gerenciado facilita a configuração de clientes de cache ao fornecer um pacote NuGet para adicionar a configuração e as referências a assembly 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.

É fácil configurar aplicativos clientes do Serviço de cache gerenciado. O Serviço de cache gerenciado fornece um pacote NuGet a fim de adicionar a configuração e as referências a assembly necessárias para permitir que os clientes de cache acessem um cache.

noteObservação
O Serviço de cache gerenciado dá suporte a aplicativos clientes de sites do Azure, serviços de nuvem e máquinas virtuais. 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 Cache Service Client Application Types.

Se você está criando um aplicativo de serviços de nuvem, baixe nsure se está usando o SDK do Azure versão 2.1 ou posterior. 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.

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

Para usar o pacote NuGet do Serviço de cache gerenciado, 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.

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

Pacote de NuGet de Cache do Windows Azure

Quando é instalado em um projeto cliente, o pacote NuGet do Serviço de cache gerenciado adiciona a configuração e as referências a 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 [Cache role name or Service Endpoint] pelo URL do ponto de extremidade que é exibido no Painel de Cache do Portal de Gerenciamento.

    URL do ponto de extremidade para o Serviço de cache do Windows Azure
    Neste exemplo, o cache tem o nome de applicationcache e o URL do ponto de extremidade é applicationcache.cache.windows.net.

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    
    Remova as marcas de comentário da seção securityProperties e substitua [Authentication Key] 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.

    Gerenciar chaves de acesso para o Serviço de cache do Windows Azure
    WarningAviso
    Se esses parâmetros não forem configurados corretamente, os clientes não conseguirão acessar o cache.

Para projetos de serviços de nuvem, o pacote NuGet do Serviço de cache gerenciado também adiciona uma configuração ClientDiagnosticLevel ao ConfigurationSettings da função cliente de cache em ServiceConfiguration.cscfg. O exemplo a seguir é a seção WebRole1 de um arquivo ServiceConfiguration.cscfg com um 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>
noteObservação
Para obter mais informações sobre níveis de diagóstico de cache, consulte Sobre ClientDiagnosticLevel para o serviço de cache gerenciado do Azure.

Além de adicionar a configuração necessária, o pacote NuGet do Serviço de cache gerenciado também adiciona as seguintes referências a assembly.

  • 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

O provedor de estado da sessão do Cache do 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 ASP.NET, conforme descrito anteriormente na seção Configurar um cliente de cache usando o pacote NuGet de cache.

  2. 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.

  3. 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 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 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">
      <!-- Other cache settings omitted -->
    </dataCacheClient>
    
    Para obter uma lista das opções de configuração disponíveis, consulte Parâmetros de configuração de cliente de cache para o serviço de cache gerenciado do Azure. 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 para provedor de estado da sessão ASP.NET para o serviço de cache gerenciado do Azure.

O provedor de cache de saída do Cache do Microsoft Azure é um mecanismo de armazenamento fora do processo para dados de cache de saída. Esses dados destinam-se especificamente a respostas HTTP completas (cache de saída de página). O provedor é conectado ao novo ponto de extensibilidade de provedor de cache de saída que foi introduzido no ASP.NET 4. Quando você usa o pacote NuGet de cache para habilitar o cache, ele adiciona uma seção desativada com marcas de comentário para habilitar o provedor de saída de página de cache.

  1. Primeiro, configure um cache para usar com o provedor ASP.NET, conforme descrito anteriormente na seção Configurar um cliente de cache usando o pacote NuGet de cache.

  2. Use NuGet para adicionar suporte de caching ao seu projeto ASP.NET no Visual Studio.

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

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

  4. No arquivo web.config, remova a indicação de comentário da seção caching.

        <!-- 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.

Mostrar: