Поделиться через


Инструкция по настройке поставщика состояний сеансов AppFabric для ASP.NET (кэширование в AppFabric 1.1)

В этом разделе описывается настройка веб-приложения ASP.NET, использующего подготовленный кэш AppFabric для кэширования состояния сеансов. Настройка производится путем изменения файла web.config веб-приложения.

Использование Кэш Microsoft AppFabric 1.1 для Windows Server для хранения состояния сеансов

Чтобы веб-приложение ASP.NET могло использовать поставщик состояний сеансов AppFabric, следует добавить в файл web.config приложения следующие элементы:

  • configSections: этот элемент должен стоять первым в файле конфигурации сразу после открывающего тега configuration. Он необходим для работы сборок Кэш AppFabric.

  • dataCacheClients: данный элемент является дочерним по отношению к элементу "configuration". Он используется для хранения элементов dataCacheClient, служащих для настройки клиента кэша и указания узлов кэша.

  • sessionState: данный элемент является дочерним по отношению к элементу system.web. Он указывает, что веб-приложение должно использовать Microsoft AppFabric 1.1 для Windows Server для управления состояниями сеансов. Атрибут cacheName задает используемый для этого именованный кэш. Атрибут dataCacheClientName указывает, какой раздел dataCacheClient используется для настройки кэша.

Предупреждение

Настоятельно рекомендуется обеспечить безопасность файла web.config, используемого для задания имен узлов кэша.

Использование кэша Microsoft AppFabric 1.1 для Windows Server для хранения состояния сеансов

  1. Сначала подготовьте проект Visual Studio 2010 к использованию Кэш Microsoft AppFabric 1.1 для Windows Server. Дополнительные сведения см. в разделе Подготовка среды разработки клиента кэша (кэширование в AppFabric 1.1).

  2. Помимо обычных сборок кэша, также добавьте ссылку на сборку Microsoft.Web.DistributedCache.dll по пути установки Кэш Microsoft AppFabric 1.1 для Windows Server.

  3. Скопируйте элемент configSections из приведенного в конце статьи примера в свой файл web.config. Этот элемент должен быть первым среди всех элементов в тегах configuration.

  4. Скопируйте элемент dataCacheClients из приведенного в конце статьи примера в свой файл web.config. Он должен стоять после элемента configSections внутри элемента configuration.

    1. Настройте атрибуты name и cachePort в элементах узлов в соответствии с конфигурацией серверов кэша в конкретной среде. При необходимости можно добавлять и удалять элементы узлов.
  5. Скопируйте элемент sessionState из приведенного в конце статьи примера в свой файл web.config. Его следует поместить внутрь элемента system.web. Укажите атрибуты cacheName и dataCacheClientName, а также прочие необходимые параметры.

  6. Определите удостоверение веб-приложения. Это можно сделать в диспетчере IIS на веб-серверах. Посмотрите на удостоверение пула приложений, связанного с веб-приложением. Предоставьте этот пользовательский доступ кластеру кэша с помощью команды Grant-CacheAllowedClientAccount Windows Powershell.

    Совет

    Если пул приложений запускается под встроенной учетной записью компьютера, например "NT Authority\Network Service", то следует предоставить доступ к кластеру кэша для этого компьютера. Это можно сделать, указав в качестве учетной записи DOMAINNAME\MACHINENAME$. Следует отметить, что "$" добавляется к имени компьютера, чтобы указать, что это учетная запись компьютера.

Пример

В этом примере демонстрируется настройка веб-приложения ASP.NET с использованием клиента кэша для сохранения данных сеансов в распределенном кэше default. Клиент кэша в этом примере настроен так, чтобы взаимодействовать только с одним узлом кэша — CacheServer1.

  1. Сначала добавьте элемент configSections в файл web.config, сделав его первым элементом в элементе 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. Во-вторых, добавьте один элемент dataCacheClients с элементами dataCacheClient. Добавьте его в файл web.config после элемента configSections. Именно здесь клиент кэша можно настроить в соответствии с потребностями конкретного приложения. Дополнительные сведения см. в разделе Параметры конфигурации приложения (кэширование в AppFabric 1.1).

      <dataCacheClients>
        <dataCacheClient name="default">
          <hosts>
            <host name="CacheServer1" cachePort="22233" />
          </hosts>
        </dataCacheClient>
      </dataCacheClients>
    
  3. После добавления элементов configSections и dataCacheClients добавьте элемент sessionState в файл web.config, расположив его внутри элемента system.web. Здесь можно указать кэш, который веб-приложение будет использовать для хранения данных о состоянии сеансов. Настройте атрибуты cacheName и dataCacheClientName, а также прочие необходимые параметры.

    Обратите внимание, что в ситуации, если одно и то же состояние сеанса должно использоваться в нескольких веб-приложениях, то все они должны использовать одно и то же значение атрибута applicationNamme. В противном случае не требуется указывать атрибут 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>
    

После выполнения всех действий итоговый файл web.config веб-приложения будет похож на следующий пример.

<?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>

См. также

Основные понятия

Поставщик состояний сеансов (кэширование в AppFabric 1.1)

  2012-03-05