如何在ASP.NET中使用SQLServer作为sessionState模式处理会话对象超时?

Nil*_*zor 4 sql-server asp.net session session-state session-timeout

在ASP.NET应用程序中将SQL Server设置为状态处理程序时,会话超时是如何处理的,或者在何处?

从数据库加载会话对象后判断对象是否过期,或者SQL Server本身是否负责处理这个问题,是.NET框架吗?我怀疑(或甚至认为)后一种可能性的原因是,创建ASPState的脚本提到了一些关于ASPState_Job_DeleteExpiredSessions-element的内容.

如果它是一个SQL Server作业清理,这个作业多久会触发一次,它如何与web.config中的timeout参数对齐?

Nil*_*zor 5

来自Quantum Elf链接的文章:

SqlSessionStateStore不主动监视Expires字段.相反,它依赖于外部代理来清除数据库并删除过期的会话 - 其Expires字段包含的日期和时间小于当前日期和时间的会话.ASPState数据库包括一个SQL Server代理作业,该作业定期(默认情况下,每60秒)调用存储过程DeleteExpiredSessions以删除过期的会话.

这意味着它是处理expriation和会话对象清除的SQL Server,特别是SQL作业代理.