小弟我正在写一个web application,需要在application停止(服务器重起、IIS重起)的时候把当前application里面的数据记载在一个xml文件里,等到下次application启动的时候可以加载。现在各个method都已经就绪并且通过了测试,但是我发现当我重起IIS的时候,在Global.asax里面的application_end()并没有被fire,导致数据不能保存。
请问,IIS停止(重起)的时候会fire application_end()事件吗?如果不能,那我这种情况怎么办呢?万分感谢!

解决方案 »

  1.   

    使用System.Web.Security
    具体参阅 http://www.15seconds.com/issue/020220.htm
      

  2.   

    modify web.config or global.aspx,than run your application.
      

  3.   

    小马哥能不能说具体一点?如何modify?
    我的global.asax中没有别的东西,只是在application_end()中加入了一个把信息写入.txt文件的几行代码(这几行代码没问题,测试通过)。然后我就尝试重起IIS看.txt文件有没有被写入。结果当然是没有。——这就说明application_end()根本没有被fire。
    不知道您有何高见?或者说,IIS重起根本不会导致application_end()被fire,我做了半天都是瞎忙?
      

  4.   

    在web.config. global.aspx中任意修改 比如press enter key  
    你的程序就 重置reset. 
      

  5.   

    嗯,小马哥,你说的情况是在debug的情况下。
    那么,如果在deploy以后呢?我不能时常去rebuild吧?
    如果IIS重起或者Server重起呢?Application_End()会不会被fire?
      

  6.   

    ==》application_end()在IIS停止的时候会不会fire。
    会触发这个事件。Application_End事件在下面这些情况下均会触发:
    1、当你是用iisreset强行重新启动IIS的时候。
    2、当你在inetmgr里停止IIS服务器的时候。
    3、以及IIS意外中止的时候。
    Applicatin_End激发的条件是最后一个Application实例被销毁的时候,这是一个托管对象该对象应该由CLR销毁。你的文件没有写是否是因为你的权限不够?或者你的写文件的方法有问题。
      

  7.   

    嗯,谢谢各位的帮助。不过问题还是没有解决。Thanks anyway.