如何识别IIS已重新启动?

如何识别IIS已重新启动?,iis,Iis,在我的应用程序中,我将一些与用户会话相关的数据保存在数据库中。当用户注销时,我将从数据库中清除其所有会话数据。到目前为止,一切顺利 但是,当IIS重新启动时,所有活动会话都将无效,而没有机会正常清理 因此,我需要确定IIS何时重新启动以解决此问题。我只需在global.asax中的应用程序启动事件中添加一些内容 由于某种原因,您的应用程序已重新启动,并且根据您的描述,它必须清除数据库中的所有会话,无论是来自IIS重新启动,还是应用程序池被回收等 您不能信任应用程序在应用程序结束事件中设置IIS

在我的应用程序中,我将一些与用户会话相关的数据保存在数据库中。当用户注销时,我将从数据库中清除其所有会话数据。到目前为止,一切顺利

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


因此,我需要确定IIS何时重新启动以解决此问题。

我只需在global.asax中的应用程序启动事件中添加一些内容

由于某种原因,您的应用程序已重新启动,并且根据您的描述,它必须清除数据库中的所有会话,无论是来自IIS重新启动,还是应用程序池被回收等


您不能信任应用程序在应用程序结束事件中设置IIS已发出重启信号的标志,因为有时它不会触发。例如,如果服务器崩溃,或者IIS在其控制之外被杀死(taskkill),会发生什么情况

在存储会话数据的SQL server上定义了一个
DBNAME\u Job\u DeleteExpiredSessions
作业。如果SQL代理服务正在运行,则作业将清除旧会话

会话超时怎么办?超时后需要清理吗?还请记住,您无法真正中继Session.End事件-它仅适用于进程内会话

我怀疑(但验证这一点很明智)他可以在应用程序的End事件中添加一些内容。