在ASP.Net(MVC)中保存ApplicationState的内容

时间:2009-10-20 16:20:20

标签: c# asp.net-mvc application-state

我有一个用于编辑磁盘上的XML文件的内部应用程序。 XML文件被加载到一个存储在ApplicationState中的对象模型中。

我需要保存这些数据。一个选项是每次用户更改某些数据时执行此操作。但是,这似乎有点低效 - 每次进行更改时都会将数据写入磁盘。

相反,是否可以在用户关闭浏览器时,以及在Web服务器退出之前收到通知?因此,每次会话结束时,以及计算机关闭等时都会保存数据。我认为Global.asax中的Application_End(),Application_Error()和Session_End()会提供此功能,但这些方法不会似乎被称为。

1 个答案:

答案 0 :(得分:0)

应该调用Session_End。

您运行的是哪个版本的IIS,或者您是否在Visual Studio开发服务器中托管?

启动Session_End的步骤:

  1. 在VS 2008中创建新网站

  2. 编辑web.config:

    <sessionState mode="InProc" cookieless="true" timeout="1"/>添加到<system.web>

  3. 添加一个Global.asax文件,其代码如下所示。

    void Session_End(object sender, EventArgs e)

    {

    Console.WriteLine( "Session_End" );

    }

  4. Console.WriteLine来电时设置断点。

  5. 按F5并在IE或Firefox中查看页面加载。

  6. 等一分钟左右。

  7. 断点应在IDE中以红色突出显示。