asp.net应用程序重启有几个原因.在大多数情况下,应用程序重启能够确保潜在的错误或内存不足不会影响应用程序长期运行..aspx页面过多的动态更改导致大量程序集(通常是一个页面对应一个程序集)被加载到内存中,这也是应用程序重启的原因之一.如果某个应用程序消耗的虚拟内存过多,则会终止应用程序,并使其重启.asp.net运行时环境实现了许多检查过程,在下列任何一种情况发生时,将重启应用程序:
①达到了动态页面编译 的最大限度.该限度可以在web.config文件中进行配置.
②web应用程序的物理路径被更改,或其中的任何目录被重命名.
③应用程序根目录下的global.asax,machine.config,web.config或bin目录(包括其子目录)中的文件被更改
④代码访问安全策略文件被更改.
⑤某个内容目录中的太多文件发生了更改(如果这些文件是在被请求时生成的,一般会发生这种情况)
⑥用于控制asp.net工作线程的重启/关闭设置被更改.如果不使用windows server2003的iis6.0进程模型,那么设置会从machine.config中获取.如果完全利用iis6.0,那么,更改iis 管理器的应用程序池节点便会重启相应的程序.
除了这些情况以外,可以通过调用HttpRuntime.UnloadAppDomain以编写方式重启应用程序.