Как время ожидания объекта сеанса обрабатывается в ASP.NET с SQLServer в режиме sessionState? - PullRequest
4 голосов
/ 05 апреля 2011

Как или, возможно, где обрабатывается время ожидания сеанса, когда вы устанавливаете SQL Server в качестве обработчика состояния в приложении ASP.NET?

Это фреймворк .NET, который после загрузки объектов сеанса из БД принимает решение о том, истек ли срок действия этих объектов, или об этом позаботится работа на самом SQL Server?Причина, по которой я подозреваю (или даже предполагаю) последнюю возможность, заключается в том, что скрипт, создавший ASPState, упомянул что-то об элементе ASPState_Job_DeleteExpiredSessions.

Если это так, что очищается задание SQL Server, как часто оно запускается и как оно согласуется с параметром timeout в web.config?

Ответы [ 2 ]

5 голосов
/ 06 апреля 2011

С статья , на которую ссылается Quantum Elf:

SqlSessionStateStore не осуществляет активный мониторинг поля Expires.Вместо этого он использует внешний агент для очистки базы данных и удаления сеансов с истекшим сроком - сеансов, чье поле Expires содержит дату и время меньше, чем текущие дата и время.База данных ASPState включает в себя задание агента SQL Server, которое периодически (по умолчанию каждые 60 секунд) вызывает хранимую процедуру DeleteExpiredSessions для удаления истекших сеансов.

Это означает, что SQL Server обрабатывает истечение срока и сеанс.очистка объектов и, в частности, агента заданий SQL.

0 голосов
/ 05 апреля 2011

Тайм-аут состояния сеанса ASP.NET по-прежнему настраивается в web.config / machine.config независимо от того, выполняется ли состояние в процессе или сохраняется в SQL Server.

...