Compartilhar via


Como: Configurar o provedor de estado da sessão do AppFabric para ASP.NET (Cache do AppFabric v1.1)

Este tópico explica como configurar um aplicativo web ASP.NET para usar um cache AppFabric provisionado para cache de estado da sessão. A configuração é realizada por meio da modificação do arquivo web.config para o aplicativo web de destino.

Como usar o Microsoft AppFabric 1.1 para Cache do Windows Server para estado da sessão

Para que o seu aplicativo Web ASP.NET use o provedor de estado da sessão AppFabric, você deve adicionar os seguintes elementos ao arquivo web.config do seu aplicativo:

  • configSections: este deve ser o primeiro elemento no arquivo de configuração, abaixo da marca configuration de abertura. É necessário para que os assemblies de Cache do AppFabric funcionem.

  • dataCacheClients: esse elemento é um filho do elemento configuração. É usado para reter os elementos dataCacheClient que configuram clientes de cache e especificam os hosts de cache.

  • sessionState: esse elemento é um filho do elemento system.web. Ele especifica para o aplicativo da Web que ele deve usar o Microsoft AppFabric 1.1 para Windows Server para gerenciar os dados de estado da sessão. O atributo cacheName especifica o cache nomeado que será usado. O atributo dataCacheClientName especifica qual seção de dataCacheClient deve ser usada para a configuração de cache.

Aviso

É recomendável que você proteja o arquivo web.config usado para especificar os nomes dos hosts de cache.

Para usar o cache de Microsoft AppFabric 1.1 para Windows Server para estado da sessão

  1. Primeiro, prepare seu projeto de Visual Studio 2010 para usar Microsoft AppFabric 1.1 para Cache do Windows Server. Para obter mais informações, consulte Preparando o ambiente de desenvolvimento do cliente de cache.

  2. Além dos assemblies normais de cache, consulte também o assembly Microsoft.Web.DistributedCache.dll no caminho de instalação de Microsoft AppFabric 1.1 para Cache do Windows Server.

  3. Copie o elemento configSections do exemplo depois que executar essas etapas no arquivo web.config. Verifique se este é o primeiro elemento dentro das marcas configuration.

  4. Copie o elemento dataCacheClients do exemplo depois que executar essas etapas no arquivo web.config. Ele deve ser adicionado após o elemento configSections, dentro do elemento configuration.

    1. Configure os atributos name e cachePort dos elementos de host para que correspondam aos servidores de cache no seu ambiente. Adicione ou remova elementos de host conforme apropriado.
  5. Copie o elemento sessionState do exemplo depois que executar essas etapas no arquivo web.config. Ele deve estar posicionado dentro do elemento system.web. Especifique os atributos cacheName e dataCacheClientName, além das outras configurações necessárias.

  6. Determine a identidade do aplicativo da Web. Isso pode ser feito no Gerenciador do IIS nos servidores da Web. Verifique a identidade do pool de aplicativos associado ao aplicativo da Web. Conceda esse acesso do usuário ao cluster de cache usando o comando Grant-CacheAllowedClientAccount do Windows Powershell.

    Dica

    Se o pool de aplicativos for executado como uma conta de máquina incorporada, como "NT Authority\Network Service", então você deverá conceder acesso ao cluster de cache para essa máquina. Você pode fazer isso especificando DOMAINNAME\MACHINENAME$ como a conta. Observe que "$" está anexado ao nome de máquina para indicar que essa é a conta da máquina.

Exemplo

Este exemplo mostra como configurar um aplicativo da Web ASP.NET a fim de usar um cliente de cache para armazenar dados de sessão para um cache distribuído, denominado default. Nesse exemplo, o cliente de cache é configurado apenas para se comunicar com um host de cache com o nome CacheServer1.

  1. Primeiro, adicione o elemento configSections ao arquivo web.config como o primeiro elemento no elemento configuration:

      <!--configSections must be the FIRST element -->
      <configSections>
        <section name="dataCacheClients"
                 type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core"
                 allowLocation="true" allowDefinition="Everywhere"/>
      </configSections>
    
  2. Em seguida, adicione um único elemento dataCacheClients que contenha um ou mais elementos dataCacheClient. Adicione-o ao arquivo web.config depois do elemento configSections. É nesse ponto que você configura o cliente de cache para que atenda às necessidades do seu aplicativo. Para obter mais informações, consulte Configurações de aplicativo (Cache do AppFabric 1.1).

      <dataCacheClients>
        <dataCacheClient name="default">
          <hosts>
            <host name="CacheServer1" cachePort="22233" />
          </hosts>
        </dataCacheClient>
      </dataCacheClients>
    
  3. Depois que os elementos configSections e dataCacheClients forem adicionados, acrescente o elemento sessionState no arquivo web.config, dentro do elemento system.web. É nesse ponto que você especifica o cache que o aplicativo da Web usará para armazenar dados de estado da sessão. Personalize os atributos cacheName e dataCacheClientName, além das outras configurações necessárias.

    Observe que se vários aplicativos da Web precisarem compartilhar o mesmo estado de sessão, deverão usar o mesmo valor de atributo applicationNamme. Caso contrário, você não precisará especificar o atributo applicationNamme.

        <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider" compressionEnabled="false">
          <providers>
            <add name="AppFabricCacheSessionStoreProvider"
                 type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
                 cacheName="default"
                 useBlobMode="true"
                 dataCacheClientName="default"/>
          </providers>
        </sessionState>
    

Quando estiver concluído, o arquivo web.config final do aplicativo da Web será semelhante ao exemplo a seguir.

<?xml version="1.0"?>

<configuration>
  <configSections>
    <section name="dataCacheClients"
             type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core"
             allowLocation="true" allowDefinition="Everywhere"/>
  </configSections>

  <dataCacheClients>
    <dataCacheClient name="default" channelOpenTimeout="10000">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
      </hosts>
    </dataCacheClient>
  </dataCacheClients>
  
  <system.web>
    <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider" compressionEnabled="false">
      <providers>
        <add name="AppFabricCacheSessionStoreProvider"
             type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
             cacheName="default"
             useBlobMode="true"
             dataCacheClientName="default"/>
      </providers>
    </sessionState>
  </system.web>
</configuration>

Consulte também

Conceitos

Provedor de estado da sessão (Cache do AppFabric 1.1)

  2012-03-05