Изучение сессии в ASP.Net - Режим сессии SQL Server

ОГЛАВЛЕНИЕ

Режим сессии SQL Server

Обзор режима сессии SQL Server

Этот режим сессии обеспечивает более безопасное и надежное управление сессиями в asp.net. В этом режиме сессии данные сессии сериализуются и сохраняются в базе данных SQL Server. Основные недостатки данных методов хранения сессии – издержки, связанные с сериализацией и десериализацией данных. Это лучший вариант для применения в веб-фермах.

 

Для настройки SQL Server надо воспользоваться двумя скриптами sql.

•    Для установки: InstallSqlState.sql
•    Для удаления: UninstallSQLState.sql

Простейший способ сконфигурировать SQL Server – использовать команду aspnet_regsql. Использование этого файла подробно объяснено в разделе конфигурации. Это наиболее полезное управление состоянием в веб-ферме.

Когда следует использовать режим сессии SQL Server?

•    Режим сессии SQL Server – более надежное и безопасное управление состоянием сессии.
•    Он хранит данные в централизованном месте (база данных).
•    Следует использовать режим сессии SQL server, когда нужна более безопасная реализация сессии.
•    Если сервер часто перезапускается, можно реализовать SQL server.
•    Этот режим прекрасно подходит для веб-фермы и веб-сада (подробно объяснено далее).
•    Можно использовать режим сессии SQL server, когда сессия совместно используется двумя разными приложениями.

Конфигурация для режима сессии SQL Server

В режиме сессии SQL Server данные сессии сохраняются в SQL Server, поэтому сначала надо прописать строку подключения к базе данных в web.config.Атрибут sqlConnectionString используется для указания строки подключения в web.config.

После установки строки подключения надо сконфигурировать SQL Server. SQL server конфигурируется с помощью команды aspnet_regsql следующим образом:

Шаг 1: Из командной строки перейдите в ваш каталог версии среды разработки

Например:c:\windows\microsoft.net\framework\<version>.

Шаг 2: Выполните команду aspnet_regsql со следующими параметрами

 

Ознакомьтесь с параметрами и их назначениями

Параметры

Описание

-ssadd

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

-sstype p

Pозначает сохраненный. Он сохраняет данные сессии на сервере.

-S

Задать имя сервера

-U

Задать имя пользователя

-P

Задать пароль

После выполнения вы получите следующее сообщение,

 

только и всего.

Шаг 3: Откройте SQL Server Management Studio. Убедитесь, что новая база данных ASPState была создана, и в ней есть две таблицы,
•    ASPStateTempApplications
•    ASPStateTempSessions

 

Теперь измените строку конфигурации примера сервера состояний и запустите то же самое приложение, что и для сервера состояний.
Сохраните список и имя пользователя и щелкните по кнопке «Отправить», и откройте таблицу ASPStateTempSessions из SQL Server Management Studio, и увидите ваши данные сессии,

 

Теперь проделайте следующий тест, уже описанный в режиме сервера состояний.
1.    Удалите ключевое слово serialize из класса StydentInfo
2.    Перезапустите IIS и щелкните по «Восстановить сессию»
3.    Остановите службу SQL Server

Плюсы и минусы

Плюсы:
•    Данные сессии не страдают при перезапуске IIS.
•    Самое надежное и безопасное управление сессиями.
•    Данные хранятся в централизованном месте, легко доступном из другого приложения.
•    Очень полезен для веб-фермы и веб-сада.

Минусы:
•    Обработка очень медленная по характеру.
•    Сериализация и десериализация объекта создает издержки для приложения.
•    Поскольку данные сессии обрабатываются в другом сервере, приходится следить за SQL server. Он всегда должен быть запущен и работать.