Управление состоянием в ASP.NET
Страница 6. Серверные методы. 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 либо отказоустойчивого кластера веб-серверов. Как и в предыдущем способе, сохраняемые объекты должны быть сериализуемы.

 
« Предыдущая статья   Следующая статья »