我有一个内部应用程序用于编辑磁盘上的XML文件。 XML文件被加载到存储在ApplicationState中的对象模型中。在ASP.Net(MVC)中保存ApplicationState的内容
我需要保存这些数据。每当用户更改一些数据时,一个选项就是这样做。但是,这看起来效率不高 - 每次进行更改时都会将数据写入磁盘。
相反,只要用户关闭浏览器,再加上Web服务器退出之前,是否可以通知?因此,数据会在每次会话结束时保存,加上计算机关闭时等。我认为Global.asax中的Application_End(),Application_Error()和Session_End()会提供这个,但这些方法不会似乎被称为。
注意,使用的是InProc会话管理时Session_End中才会被调用,并不会在所有的呼吁,如果因任何原因重新启动应用程序,所以是不是所有的可靠。 – 2009-10-20 17:51:33
如果应用程序重新启动,您可能有机会执行Application_End方法中的保存。 – Liam 2009-10-20 17:55:08
正如Zhaph指出的: 只有在Web.config文件中将sessionstate模式设置为InProc时,才会引发Session_End事件。 如果会话模式设置为StateServer或SQLServer,则不会引发该事件。 – Liam 2009-10-20 17:56:34