如何识别IIS重新启动?

时间:2009-11-18 17:18:29

标签: iis

在我的应用程序中,我保存了与数据库中的用户会话相关的一些数据。当用户注销时,我清理了数据库中的所有会话数据。到目前为止,非常好。

但是,当IIS重新启动时,所有活动会话都将失效,而无法正常清理。

因此,我需要确定何时重启IIS以解决这种情况。

3 个答案:

答案 0 :(得分:1)

我只想在global.asax

中的application_start事件中添加一些东西

http://www.codetoad.com/asp.net_globalasax.asp

您的应用由于某种原因已重新启动,并且根据您的说明,无论是从IIS重新启动还是应用程序池获得回收等,都必须清除数据库中的所有会话。

您无法信任您的应用程序设置IIS已在application_end事件中表示重新启动的标志,因为有时它不会触发。例如,如果服务器崩溃,或者IIS在其控制之外被杀死(taskkill),会发生什么。

答案 1 :(得分:0)

在SQL Server上定义了DBNAME_Job_DeleteExpiredSessions作业,其中存储了会话数据。如果您的SQL代理服务正在运行,该作业将清除旧会话。 More info

答案 2 :(得分:0)

会话超时怎么样?超时后你需要清理吗?还要记住,你无法真正转发Session.End事件 - 它只适用于进程内会话