Сессия не сохраняется в базе данных ASPState?
У нас есть веб-приложение, настроенное как веб-сад. Из-за этого мы хотим сохранить состояние сеанса пользователя в режиме sqlserver. Моя конфигурация в web.config выглядит следующим образом
<sessionState mode="SQLServer" cookieless="false" sqlConnectionString="data source=[DBSERVER]; Database=ASPState; user id=[USERNAME];password=[PASSWORD];" />
Я запустил инструмент Aspnet_regsql.exe и установил -sstype как "p"
Я подтвердил, что могу также подключиться к ASPState DB с веб-сервера, предоставленное имя пользователя имеет разрешение на выполнение всех хранимых процедур в DB.
Используя инструменты разработчика в Chrome, я вижу файл cookie сеанса ASP.NET и вижу идентификатор, поэтому я знаю, что сеанс создается.
Я получаю любую ошибку БД.
Однако, когда я запрашиваю таблицу "ASPStateTempSessions", никаких записей нет. В "ASPStateTempApplications" нет никаких записей.
Когда эти сеансы должны быть сохранены в базе данных? Почему я не могу их увидеть?
2 ответа
Попробуйте добавить атрибут timeout.
<sessionState mode="SQLServer" cookieless="false" sqlConnectionString="data source=[DBSERVER]; Database=ASPState; user id=[USERNAME];password=[PASSWORD];" timeout="20" />
Попробуйте добавить время ожидания и имя приложения, ASPState является базой данных по умолчанию, поэтому мы можем удалить его
<sessionState mode="SQLServer" timeout="20" sqlConnectionString="Data Source=SQLServer; Application Name=App; user id=UserName; password=Password"/>