我的应用程序使用存储在缓存中的数据,任何时刻都不超过30MB。这些数据非常重要,所以我不希望在不必要的崩溃或回收中丢失它。当应用程序回收时,是否有任何方法或方法在SQL Server中备份此数据?有什么方法可以在应用程序回收时调用,在那里我可以在SQL Server上进行备份吗?
答案 0 :(得分:0)
添加代码以将数据保存到Application_End()中的global.asax中的文件或数据库。在礼貌关闭中应该被调用。
在某些情况下,如果没有礼貌关闭,将不会触发Application_End事件。这些内容涵盖here并总结如下:
正常应用程序正常关闭时会触发此事件。该 以下事情可能导致此事件触发:
您编辑正在运行的应用程序的配置文件。这会导致ASP.NET卸载应用程序并重新加载它,因此Application_End 将解雇
您更改了bin目录中的dll。这也会导致ASP.NET卸载应用程序并重新加载它,因此Application_End将触发
您停止(或重新启动)IIS
如果在IIS6应用程序池中启用了任何类型的进程回收,或者使用aspnet工作进程,那么在该进程中 回收Application_End事件将触发所有活动的事件 申请
- 醇>
导致进程正常重新启动的任何其他类似事件。
当进程没有正常退出时它不会触发 - 就像它一样 陷入僵局,需要被杀死。所有现场直播都不会发射 会议已结束,但所有活动会议将在会议结束前结束 应用程序在上述场景中结束。微妙的区别在于 所有实时会话都可以结束,但应用程序仍处于空闲状态。