我知道当应用程序池被 IIS 回收时,会调用此事件的事件处理程序,但是什么时候会发生这种情况呢?如果使用内置的 Visual Studio 服务器(Cassini)呢?如果我杀死服务器进程,Application_End 会被解雇吗?
更新:我知道 web.config 和 BIN 文件夹更改。我对在应用程序空闲一段时间而没有触及任何东西后关闭池的情况感兴趣。
正如尼克所说,“当应用程序池配置达到某些回收限制时,应用程序池将回收。” 在 IIS 中,您可以在应用程序池设置中设置回收条件。您可以使用固定间隔(每 X 分钟或每请求一次)、一天中的特定时间或基于内存的最大值(以 MB 为单位)(最大虚拟内存或最大私有内存),或任何这些的组合。您还可以以分钟为单位设置空闲超时,然后终止工作进程。
当您更改 web.config 或 /bin 目录时,应用程序池将回收,或者应用程序池配置中的某些回收限制受到影响。Cassini 也是如此,只是它没有应用程序池,因此它会在 web.config 或 /bin 目录更改时触发。我不确定是否要杀死 Cassini 的实例。