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


Практическое руководство. Настройка клиента кэша для Azure управляемая служба кэша

Важно!

Корпорация Майкрософт рекомендует всем новым разработкам использовать кэш Redis для Azure. Текущую документацию и рекомендации по выбору предложения кэша Azure см. в статье о том, какое предложение кэша Azure подходит для меня?

управляемая служба кэша упрощает настройку клиентов кэша, предоставляя пакет NuGet для добавления необходимых ссылок на сборки и конфигурации. Пакет кэша NuGet также предоставляет закомментированные разделы в web.config для веб-проектов для включения поставщиков состояния сеанса кэша и кэша вывода. Данная тема предоставляет пошаговое руководство по настройке клиентов кэша с использованием пакета кэша NuGet.

В этом разделе

  • Настройка клиента кэша с помощью пакета NuGet для Caching

  • Использование поставщика состояния сеансов в проекте ASP.NET

  • Использование поставщика вывода кэша в проекте ASP.NET

Настройка клиента кэша с помощью пакета NuGet для Caching

Настройка управляемая служба кэша клиентских приложений проста. управляемая служба кэша предоставляет пакет NuGet для добавления необходимых ссылок на конфигурацию и сборки, чтобы клиенты кэша могли получать доступ к кэшу.

Примечание

управляемая служба кэша поддерживает веб-сайты Azure, Облачные службы и клиентские приложения Виртуальные машины. Настройка разных типов приложений очень похожа. Предлагаемый пакет кэша NuGet устраняет большинство данных различий автоматически, указанные различия описаны в различных пунктах данной темы. Общие сведения о различиях см. в разделе "Типы клиентских приложений службы кэша".

Если вы создаете приложение облачных служб, скачайте nsure, который вы используете пакет AZURE SDK версии 2.1 или более поздней. Если вы создаете Веб-сайты или приложения клиента Виртуальной машины, то Пакет кэша NuGet устанавливает все, что вам нужно, для начала работы.

Важно!

Для выполнения этих действий требуется последняя версия 2.6.40627.9000 диспетчера пакетов NuGet или более поздняя версия. Чтобы установить последнюю версию NuGet диспетчер пакетов, см. NuGet диспетчер пакетов.

Чтобы использовать пакет управляемая служба кэша NuGet, щелкните правой кнопкой мыши клиентский проект в Обозреватель решений и выберите пункт "Управление пакетами NuGet".

Выберите пункт Azure Caching, нажмите кнопку Установить и кнопку Принимаю. После установки пакета в проект клиента нажмите кнопку Закрыть, чтобы закрыть окно Управление пакетами NuGet.

Примечание

Если пункт Azure Caching отсутствует в списке, введите WindowsAzure.Caching в текстовом поле Поиск в сети.

Windows Azure Cache NuGet Package

При установке пакета управляемая служба кэша NuGet в клиентский проект он добавляет необходимые ссылки на конфигурацию и сборки, чтобы клиентское приложение получите доступ к кэшу.

В файл web.config или app.config проекта клиента добавляется несколько элементов.

  1. В configSections добавляются разделы dataCacheClients и 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. Раздел dataCacheClients добавляется в 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>
    

    Замените [имя роли кэша или конечная точка службы] URL-адресом конечной точки, который отображается на панели мониторинга кэша на портале управления.

    Endpoint URL for Windows Azure Cache Service
    В этом примере используется кэш applicationcache и URL-адрес конечной точки applicationcache.cache.windows.net.

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    

    Раскомментируйте раздел securityProperties и замените [ключ проверки подлинности] ключом проверки подлинности.

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

    Ключ проверки подлинности можно найти на портале управления. Для этого необходимо щелкнуть Ключи доступа на панели мониторинга кэша.

    Manage Access Keys for Windows Azure Cache Service

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

    Эти параметры следует настраивать правильно, иначе клиенты не смогут получить доступ к кэшу.

Для проектов облачных служб пакет управляемая служба кэша NuGet также добавляет параметр ClientDiagnosticLevel в ConfigurationSettings роль клиента кэша.ServiceConfiguration.cscfg В следующем примере показан WebRole1 раздел из ServiceConfiguration.cscfg файла с clientDiagnosticLevel 1, который является clientDiagnosticLevel по умолчанию.

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for space... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>

Примечание

Дополнительные сведения об уровнях диагностики кэша см. в статье "Сведения о ClientDiagnosticLevel для Azure управляемая служба кэша".

Помимо добавления требуемой конфигурации пакет управляемая служба кэша NuGet также добавляет следующие ссылки на сборки.

  • 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

Если проект — это веб-проект, также добавляется следующая ссылка на сборку.

  • Microsoft.Web.DistributedCache.dll

Использование поставщика состояния сеансов в проекте ASP.NET

Поставщик состояний сеанса кэша Microsoft Azure — это механизм внепроцессного хранения для ASP.NET приложений. Он позволяет хранить состояния сеансов в кэше, а не в памяти или базе данных SQL Server. Когда вы используете пакет кэширования NuGet для включения кэширования, он добавляет закомментированный раздел для включения поставщика состояния сеансов кэша.

  1. Сначала настройте кэш для использования с поставщиком ASP.NET, как описано в предыдущем разделе "Настройка клиента кэша" с помощью раздела "Кэширование NuGet Пакет".

  2. Удалите существующий элемент sessionState , который настраивает кэширование состояния сеанса. Не удаляйте раздел sessionState, добавленный пакетом NuGet.

  3. В файле web.config раскомментируйте раздел 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>-->
    

В следующем списке приведены изменения конфигурации, влияющие на работу поставщика состояний сеансов.

  • Измените целевой именованный кэш с помощью атрибута cacheName элемента add .

  • Измените источник параметров клиента кэша с помощью атрибута dataCacheClientNameэлемента add . Присвойте этому атрибуту имя существующего раздела dataCacheClient в файле web.config.

  • Измените поведение клиента кэша, изменив параметры в соответствующем разделе dataCacheClient . Например, включите сжатие с помощью атрибута isCompressionEnabled .

    <dataCacheClient name="default" isCompressionEnabled="true">
      <!-- Other cache settings omitted -->
    </dataCacheClient>
    

    Список доступных параметров конфигурации см. в Параметры конфигурации клиента кэша для Azure управляемая служба кэша. Обратите внимание, что поставщики ASP.NET для кэширования не поддерживают типы двоичной или пользовательской сериализации. Если эти сериализаторы используются для состояния сеанса, возникает следующее исключение: "Type 'Microsoft.Web.DistributedCache.SerializableSessionStateStoreData' in Assembly 'Microsoft.Web.DistributedCache, Version=101.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' is not marked as serializable"

  • Измените параметры поставщика состояний сеансов. Список доступных параметров конфигурации см. в ASP.NET Параметры конфигурации поставщика состояний сеанса для Azure управляемая служба кэша.

Использование поставщика вывода кэша в проекте ASP.NET

Поставщик кэша вывода кэша Microsoft Azure — это механизм внепроцессного хранения данных кэша вывода. Эти данные предназначены специально для полных HTTP-ответов (кэширование вывода страниц). Поставщик подключается к новой точке расширения поставщика вывода кэша, которая появилась в ASP.NET 4. Когда вы используете пакет кэширования NuGet для включения кэширования, он добавляет закомментированный раздел для включения поставщика вывода страниц кэша.

  1. Сначала настройте кэш для использования с поставщиком ASP.NET, как описано в предыдущем разделе "Настройка клиента кэша" с помощью раздела "Кэширование NuGet Пакет".

  2. Используйте NuGet, чтобы добавить поддержку кэширования в проект ASP.NET в Visual Studio.

    Важно!

    Для выполнения этих действий требуется последняя версия диспетчера пакетов NuGet (2.6.40627.9000 или более поздняя версия). Чтобы установить последнюю версию NuGet диспетчер пакетов, см. NuGet диспетчер пакетов.

  3. Удалите существующий элемент кэширования , который настраивает кэширование выходных данных. Не удаляйте закомментированные разделы кэширования, добавленные пакетом NuGet.

  4. В файле web.config раскомментируйте раздел кэширования .

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

В следующем списке приводятся дополнительные изменения конфигурации, оказывающие влияние на поставщика кэша вывода.

  • Измените целевой именованный кэш с помощью атрибута cacheName элемента add .

  • Измените источник параметров клиента кэша с помощью атрибута dataCacheClientNameэлемента add . Присвойте этому атрибуту имя существующего раздела dataCacheClient в файле web.config.

  • Измените поведение клиента кэша, изменив параметры в соответствующем разделе dataCacheClient . Например, включите сжатие с помощью атрибута isCompressionEnabled .

    <dataCacheClient name="default" isCompressionEnabled="true">
    

    Список доступных параметров конфигурации см. в Параметры конфигурации клиента кэша для Azure управляемая служба кэша. Обратите внимание, что поставщики ASP.NET для кэширования не поддерживают типы двоичной или пользовательской сериализации.

  • Измените параметры поставщика кэша вывода. Список доступных параметров конфигурации см. в ASP.NET Параметры конфигурации поставщика кэша вывода страниц для Azure управляемая служба кэша.