ASP.NET中导致程序重启的几个东东
最近在做一个项目,由于在项目中用到文件的修改和增删,而这些操作都是在IIS运行的情况下完成的,其中我们还对进度进行跟踪,涉及到线程等等因此我们应用静态变量来完成这一跟踪。但是在项目运行过程中,静态变量经常失效,而导致这一结果的是由于IIS的应用程序重启,使得应用程序池回收静态变量等等都失效。以前没有注意到这个问题,搞了很久才把这些给搞清楚。
导致应用程序重启可能有很多种方法,而这次我碰到的有以下几种,可能这是人人皆知的我还是把他们给记下来。
1.这个可能人人都知道,只要我们更新web.config文件,替换文件会导致这个应用程序重启;
2.还有一个是全局global.asax这个文件的更新也会导致重启,这个文件一个应用程序就一个,有点像管道模型;
3.还有一个就是bin目录的更新也会导致文件的重启;
4. ...
应用程序的重启会使我们的所有变量,缓存等等失效,有时也会给我们带来我们想要的结果。在这次应用中还遇到了线程的操作,在用Thread.CurrentThread.Abort()来终止线程时,会抛出一个错误,这个和Response.Redirect(string)效果是一样的,所以不能对其用try{}catch{}操作。
导致应用程序重启可能有很多种方法,而这次我碰到的有以下几种,可能这是人人皆知的我还是把他们给记下来。
1.这个可能人人都知道,只要我们更新web.config文件,替换文件会导致这个应用程序重启;
2.还有一个是全局global.asax这个文件的更新也会导致重启,这个文件一个应用程序就一个,有点像管道模型;
3.还有一个就是bin目录的更新也会导致文件的重启;
4. ...
应用程序的重启会使我们的所有变量,缓存等等失效,有时也会给我们带来我们想要的结果。在这次应用中还遇到了线程的操作,在用Thread.CurrentThread.Abort()来终止线程时,会抛出一个错误,这个和Response.Redirect(string)效果是一样的,所以不能对其用try{}catch{}操作。