我有一个用于编辑磁盘上的XML文件的内部应用程序。 XML文件被加载到一个存储在ApplicationState中的对象模型中。
我需要保存这些数据。一个选项是每次用户更改某些数据时执行此操作。但是,这似乎有点低效 - 每次进行更改时都会将数据写入磁盘。
相反,是否可以在用户关闭浏览器时,以及在Web服务器退出之前收到通知?因此,每次会话结束时,以及计算机关闭等时都会保存数据。我认为Global.asax中的Application_End(),Application_Error()和Session_End()会提供此功能,但这些方法不会似乎被称为。
答案 0 :(得分:0)
应该调用Session_End。
您运行的是哪个版本的IIS,或者您是否在Visual Studio开发服务器中托管?
启动Session_End的步骤:
在VS 2008中创建新网站
编辑web.config:
将<sessionState mode="InProc" cookieless="true" timeout="1"/>
添加到<system.web>
添加一个Global.asax文件,其代码如下所示。
void Session_End(object sender, EventArgs e)
{
Console.WriteLine( "Session_End" );
}
在Console.WriteLine
来电时设置断点。
按F5并在IE或Firefox中查看页面加载。
等一分钟左右。
断点应在IDE中以红色突出显示。