在 global.asax 的 Application_Start() 方法中,我们可以知道应用的完全启动,但是有时候我们只是改动小部分的时候,例如 web.config 更新了,或 bin\中我们的 dll 文件更新了,在程序中怎么知道这种更细微的变量。在 global.asax 中 Application_Start() 不会被 web.config 的更新所触发,有什么好的办法呢?

解决方案 »

  1.   

    web.config的用途是配置,告诉站点我的配置是什么
    web.config 的更新必然会重启程序
    如果不重启, 新的配置是无法读取到的
      

  2.   

    可是我放在 Application_Start() 中的代码在 web.config 改动时并没有得到再次执行,但新的配置已经生效了。
      

  3.   

    不会的,你的结论怎么来的?
    用下面的代码实验下吧: protected void Application_Start(Object sender, EventArgs e)
    {
    File.AppendAllText(Server.MapPath("~/AppStartLog.txt"), DateTime.Now.ToString() + "\n");
    }
      

  4.   

    楼主的意思可能是在网站更新替换dll时给用户个提示信息 网站更新中稍后再连接
      

  5.   


    我测试上有误,改了 web.config 和或更新了 cs 文件后,Application_Start() 不会立即执行,而是有新的请求到来时才触发它,这应该是合理的。另外改动了 aspx 文件中的 cs 代码是不会引起应用的重启的,因为 aspx 中的代码应该是被解释执行的
      

  6.   

    你会经常更新web.config吗?
    如果不是,则没必要想这个问题,因为IIS已经做到了除此之外,当网站下的目录被删除,也会使程序重启
      

  7.   

    改动了web.config或改动了Global.asax系统都会在下个用户访问的时候重启!!
    这无容置疑!!当然改动了aspx文件中的cs代码是不会引起应用的重启!!
      

  8.   


    cs代码在首次被访问时被编译成一个程序集,即使cs改动过,也不会导致应用程序重启,只不过重新再次编译一遍而已;app_code中的cs代码也是如此
      

  9.   

    如果是由 asp.net 来编译 cs 代码的话,cs 变动会要求重新编译,也会导致应用程序的重启。要是自己把 cs 代码编译成 dll,肯定是会要求重启应用程序的。
      

  10.   

    在开发的时候都不会将cs编译成dll,只有软件交付使用了才会将cs编译成dll!
      

  11.   

    FileWatcher这个控件估计能搞定