我有一個內部應用程序用於編輯磁盤上的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