Была ли эта страница полезной?
Ваш отзыв об этом контенте важен для нас. Расскажите нам о том, что вы думаете.
Дополнительный отзыв?
1500 символов осталось
Экспорт (0) Печать
Развернуть все

Параметры конфигурации поставщика состояния сеансов ASP.NET в кэше роли Azure

Обновлено: Май 2015 г.

noteПримечание
Руководство по выбору правильного предложения службы кэша Azure см. в разделе Какой кэш Azure подходит мне лучше всего?.

В этом разделе рассматриваются параметры конфигурации для поставщика состояний сеансов Azure для ASP.NET. Эти параметры задаются в разделе providers элемента sessionState в файле web.config.

 

Атрибут Описание

name (обязательный)

Понятное имя поставщика, используемое элементом sessionState для ссылки на поставщик.

type (обязательный)

Строка типа .NET Framework для поставщика. См. примечания ниже по выбору требуемого значения.

cacheName (обязательный)

Имя именованного кэша Azure. Имя должно иметь значение “default”.

dataCacheClientName (необязательно)

Имя раздела dataCacheClient, который будет использоваться из раздела конфигурации dataCacheClients. Этот атрибут требуется, только если в файле web.config указано несколько разделов dataCacheClient. По умолчанию поставщик будет использовать раздел dataCacheClient с именем “default”.

applicationName (необязательно)

Строковое значение, используемое поставщиком при создании ключей кэша для хранения данных кэша вывода. Значением по умолчанию является пустая строка. Если этот атрибут не задан, поставщик использует значение HttpRuntime.AppDomainAppId в составе применяемых ключей кэша во внутреннем режиме. В отличие от функции состояния сеансов вы не хотите предоставлять общий доступ к данным кэша вывода различным приложениям ASP.NET (например /contoso и /AdventureWorks не могут иметь общий доступ к данным кэша вывода). Вместо этого следует убедиться, что различные физические экземпляры того же приложения имеют доступ к тем же данным кэша вывода. Это можно сделать двумя способами.

  • Если атрибут поставщика applicationName не задан явно, при создании ключей кэша поставщик во внутреннем режиме будет использовать HttpRuntime.AppDomainAppId. Это значит, что каждый физический экземпляр одного и того же приложения (т. е. каждый веб-сервер, на котором размещено приложение /contoso) необходимо устанавливать в IIS с точно таким же путем к метабазе. Сведения об использовании путей к метабазе в SQL Server и поставщиками состояний сеансов вне процесса см. в статье http://support.microsoft.com/kb/325056. Несмотря на то что состояние сеанса является другой функцией, та же самая проблема существует при обеспечении синхронизации путей к метабазе. Это также относится и к кэшированию вывода, если атрибут applicationName не был задан в файле web.config.

  • Более простой подход заключается в том, чтобы каждый экземпляр одного и того же приложения ASP.NET (например на каждом веб-сервере, где находится приложение /contoso) использовал тот же атрибут applicationName в файле web.config. В этом случае различные физические экземпляры одного и того же приложения могут считывать и записывать те же данные кэша вывода. При этом поставщик не использует AppDomainAppId при создании ключей кэша, исключая, тем самым, возникновение риска несовпадения путей к метабазе.

useBlobMode (необязательно)

Логическое значение, которое определяет, необходимо ли загружать и хранить данные состояния сеанса в качестве единого сериализованного BLOB-объекта. Данные атрибут в данном выпуске должен быть установлен как true, это значение по умолчанию. Использование значения false не поддерживается.

nonInlinedAdditionalLifetime (неподдерживаемый)

Данный атрибут не поддерживается в данном выпуске.

retryInterval (необязательно)

Период времени ожидания между повторными попытками в случае возникновения ошибки при связи с кэшем. Для этого значения используется следующий формат строки: "HH:MM:SS". По умолчанию поставщик в течение одной секунды будет находиться в режиме сна.

retryCount (необязательно)

Целочисленное значение, сообщающее поставщику количество повторных попыток в случае сбоя связи с кэшем. Обратите внимание, что повторно выполнить можно только некоторые операции. По умолчанию задано три повторные попытки. Между каждой повторной попыткой поставщик переходит в режим сна на время, настроенное в атрибуте retryInterval.

inlinedKeys (неподдерживаемый)

Данный атрибут не поддерживается в данном выпуске.

maxInlinedStringLength (неподдерживаемый)

Данный атрибут не поддерживается в данном выпуске.

noteПримечание
Атрибуту type должно быть присвоено значение “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>

См. также

Показ:
© 2015 Microsoft