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

Parâmetros de configuração do provedor de estado da sessão ASP.NET no 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?

Este tópico abrange os parâmetros de configuração do provedor de estado da sessão Azure para ASP.NET. Esses parâmetros são especificados na seção providers do elemento sessionState no arquivo web.config.

 

Atributo Descrição

name (obrigatório)

O nome "amigável" do provedor, usado pelo elemento sessionState para referenciar o provedor.

type (obrigatório)

Cadeia de caracteres do tipo .NET Framework do provedor. Consulte a observação a seguir sobre o valor necessário.

cacheName (obrigatório)

O nome do cache do Azure. Deve ser definido como “default”.

dataCacheClientName (opcional)

O nome da seção dataCacheClient da seção de configuração dataCacheClients a ser usada. Esse atributo só é necessário quando várias seções dataCacheClient são especificadas no arquivo web.config. Por padrão, o provedor usará a seção dataCacheClient denominada “default”.

applicationName (opcional)

Um valor de cadeia de caracteres usado pelo provedor ao criar chaves de cache para armazenar dados de cache de saída. O padrão é uma cadeia de caracteres vazia. Quando esse atributo não é definido, o provedor usa o valor de HttpRuntime.AppDomainAppId como parte das chaves de cache que usa internamente. Diferentemente do recurso de estado da sessão, não é aconselhável compartilhar dados de cache de saída entre diferentes aplicativos ASP.NET (por exemplo, /contoso e /AdventureWorks não podem compartilhar dados de cache de saída). Em vez disso, certifique-se de que todas as diferentes instâncias físicas do mesmo aplicativo tenham acesso aos mesmos dados de cache de saída. Isso pode ser feito de duas maneiras diferentes:

  • Se o atributo de provedor applicationName não for definido explicitamente, HttpRuntime.AppDomainAppId será usado internamente pelo provedor ao criar as chaves de cache. Isso significa que cada instância física do mesmo aplicativo (ou seja, cada servidor web que hospede o aplicativo /contoso) terá que ser instalada no IIS com exatamente o mesmo caminho de metabase. Consulte http://support.microsoft.com/kb/325056para obter uma explicação de como os caminhos de metabase são usados com o SQL Server e os provedores de estado da sessão fora do processo. Embora seja um recurso diferente, o estado da sessão está sujeito ao mesmo problema de manutenção dos caminhos de metabase sincronizados. Isso se aplica ao cache de saída quando o atributo applicationName não foi definido no arquivo web.config.

  • Uma abordagem mais fácil é usar, para cada instância do mesmo aplicativo ASP.NET (por exemplo, em cada servidor web que hospede o aplicativo /contoso), o mesmo atributo applicationName no arquivo web.config. Isso permite que diferentes instâncias físicas do mesmo aplicativo leiam e gravem os mesmos dados de cache de saída. Nesse caso, o provedor não usa AppDomainAppId ao criar as chaves de cache e, portanto, não há risco de caminhos de metabase incompatíveis.

useBlobMode (opcional)

Um valor booleano que especifica se os dados de estado da sessão serão carregados e armazenados como um único blob serializado. Nesta versão, esse atributo deve ser definido como true, que é o padrão. Não há suporte ao uso de um valor false.

nonInlinedAdditionalLifetime (sem suporte)

Não há suporte a esse atributo nesta versão.

retryInterval (opcional)

Um intervalo de tempo indicando a duração da espera entre novas tentativas caso ocorra um erro de comunicação com o cache. O formato de cadeia de caracteres a ser usado para esse valor é "HH:MM:SS". Por padrão, o provedor permanecerá inativo por um segundo.

retryCount (opcional)

Um valor inteiro que informa ao provedor o número de novas tentativas em caso de falha de comunicação com o cache. Observe que nem todas as operações podem ser repetidas. O valor padrão é três novas tentativas. O provedor permanecerá inativo durante o período de tempo configurado em retryInterval antes de cada nova tentativa.

inlinedKeys (sem suporte)

Não há suporte a esse atributo nesta versão.

maxInlinedStringLength (sem suporte)

Não há suporte a esse atributo nesta versão.

noteObservação
O atributo type deve ser definido como “Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache”.

<configuration>
  <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>
  <system.web>
    <!-- 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>
  </system.web>
  <dataCacheClients>
    <dataCacheClient name="default">
      <autoDiscover isEnabled="true" identifier="CacheWorkerRole1" />
    </dataCacheClient>
  </dataCacheClients>
  <cacheDiagnostics>
    <crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" />
  </cacheDiagnostics>
</configuration>

Consulte também

Mostrar: