Хранение сессий в базе данных существенно повышает нагрузку на систему, но вместе с этим повышает надежность этой системы. В частности, сессии при перезагрузке IIS не обрываются.
Для этого сначала надо создать новую базу данных ASPState. В web.config системы в раздел system.web поместить следующее:
<sessionState
mode = "SQLServer"
timeout="1440"
allowCustomSqlDatabase="true"
sqlConnectionString="Server=ServerName;Initial Catalog = ASPState;
uid=username; pwd=password"
/>
Однако если попытаться запустить приложение, то появиться ошибка:
Unable to use SQL Server because ASP.NET version 2.0 Session State is not
installed on the SQL server. Please install ASP.NET Session State SQL Server
version 2.0 or above.
Это из-за того, что в базе ASPState нет нужных для работы таблиц. Чтобы это исправить необходимо выполнить команду:
C:/Windows/Microsoft.NET/Framework/<Версия>/
aspnet_regsql.exe -ssadd -sstype c -d ASPState -E
После выполнения команды в базе ASPState появятся все необходимые таблицы. Дальше нужно пользователю, под которым система будет подключаться к базе ASPState дать необходимые права. Но для начала, чтобы убедиться что все работает, можно просто присвоить ему роль sysadmin.
После этого перезапускаем систему и убеждаемся, что сессии пишуться в базу данных.