Управление состоянием в ASP.NET - Серверные методы. SqlServer
ОГЛАВЛЕНИЕ
SqlServer
Сохранение сессии в базе данных SQL Server на отдельном сервере. Похож на предыдущий способ, но объекты сессии сохраняются в базе данных. Поэтому даже при перезапуске SQL Server они не будут потеряны. Чтобы использовать этот метод необходимо создать базу данных для хранения сессии (в ASP.NET 1.x необходимо создавать вручную, в ASP.NET 2.0 использовать утилиту aspnet_regsql.exe). Для этой цели существует два файла со скриптами InstallSqlState.sql и InstallPersistSqlState.sql. Оба скрипта создают базу данных, именуемую ASPState, состоящую из таблиц ASPStateTempApplications и ASPStateTempSessions и нескольких хранимых процедур. Разница между скриптами состоит в том, что InstallSqlState.sql создает базу данных как временную, т.е. при перезапуске SQL Server она теряется, а InstallPersistSqlState.sql создает обычную базу данных. Оба скрипта можно найти здесь:
-
systemroot\Microsoft.NET\Framework\versionNumber
В файле web.config необходимо указать connection string к используемому серверу БД. Пример настроек web.config:<sessionState
mode="SQLServer"
sqlConnectionString="Integrated Security=SSPI;data source=dataserver;"
cookieless="true"
timeout="20"
/>
Этот режим также используют для организации web farm либо отказоустойчивого кластера веб-серверов. Как и в предыдущем способе, сохраняемые объекты должны быть сериализуемы.