IIS 重叠回收可能导致全局的 Application_Start 函数“不触发”

这两天在修改单位网站的 .NET 代码,其中有一个需求是这样实现的: 网站的告警信息以及每个告警对应的已读用户是保存在一个内存对象中的。 IIS 每天晚上会做定时的应用程序回收。 所以要在应用程序终止(Application_End)前将告警数据序列化导出成 Cache 文件保存(SaveCache); 然后在新的应用程序启动(Application_Start)后从 Cache 文件中读取告警数据,反序列化回来(LoadCache)。 在测试机器上这一系列代码是运行正常的,不论是 IIS 的定时回收,还是手工对 IIS 应用程序池中的进程进行回收,系统都会自动调用 Global.asax 文件中的 Application_End […]