Изучение сессии в 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 со следующими параметрами
Ознакомьтесь с параметрами и их назначениями
Параметры |
Описание |
|
Добавить поддержку режима состояния сессии SQLServer. |
|
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. Он всегда должен быть запущен и работать.