Продажи: 1-800-867-1389

Поставщик состояния сеансов для кэша Azure

Обновлено: Сентябрь 2014 г.

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

Поставщик состояния сеанса представляет собой механизм хранения вне процесса для приложений ASP.NET. Этот поставщик позволяет хранить состояние сеанса в кэше , а не в памяти или базе данных SQL Server.

Пример кэширования состояния сеанса см. в статье Caching Session State and Output Caching Sample (Кэширование состояния сеанса и пример кэширования вывода).

В поставщик состояния сеансов внесены следующие улучшения по сравнению с последними поставщиками состояния сеансов ASP.NET.

  • Внутри он использует класс NetDataContractSerializer для сериализации состояния сеансов.

  • Он может публиковать состояния сеансов для разных приложений ASP.NET.

  • Он поддерживает одновременный доступ к одному набору состояний сеансов от нескольких читателей и одного писателя.

  • К ним можно применять функцию сжатия, доступную в свойствах клиента кэша.

Использование класса NetDataContractSerializer для сериализации способствует поддержке широкого диапазона типов, которые могут быть сериализованы. Сюда также относятся двоичные сериализуемые типы.

Поставщик поддерживает возможность одновременного считывания и записи одних и тех же данных о состоянии сеансов несколькими приложениями ASP.NET. Предположим, разработчик поддерживает два сайта ASP.NET: /contoso и /adventureworks. В каждом веб-приложении можно настроить поставщик состояний сеансов, указывающий на то же хранилище состояний сеансов в кластер кэша. В результате оба приложения смогут считывать и записывать одни и те же данные о состоянии сеанса по одному идентификатору.

Поставщик состояний сеансов поддерживает одновременный доступ к одному набору состояний сеансов от нескольких читателей и одного писателя. Читатели в этом смысле – страницы, помеченные как использующие состояние сеанса "только для чтения". Приложения, активно использующие обратные вызовы AJAX, не будут сталкиваться с очередями запросов на сервере, если большая часть шаблонов обращения к состояниям сеансов требует только чтения.

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

  2. С помощью пакета NuGet добавьте поддержку кэширование в проект ASP.NET в Visual Studio. Инструкции см. в разделе Инструкции Подготовка Visual Studio к использованию кэша роли (кэш Azure).

    ImportantВажно!
    Для выполнения этих действий требуется последняя версия диспетчера пакетов NuGet (2.1.31002.9028 или более поздняя версия). Чтобы установить последнюю версию диспетчера пакетов NuGet перейдите на веб-сайт по адресу: http://go.microsoft.com/fwlink/?LinkId=240311.

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

  4. В файле 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">
    
    Список доступных параметров конфигурации см. в разделе Параметры конфигурации клиента кэша роли (Web.config). Обратите внимание, что поставщики ASP.NET для кэширование не поддерживают типы настраиваемой или двоичной сериализации. Если эти сериализаторы используются для состояния сеансов, возникает следующее исключение. "Тип "Microsoft.Web.DistributedCache.SerializableSessionStateStoreData" в сборке "Microsoft.Web.DistributedCache, Version=101.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" не помечен как доступный для сериализации.

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

См. также

Была ли вам полезна эта информация?
(1500 символов осталось)
Спасибо за ваш отзыв
Показ:
© 2015 Microsoft