【发布时间】:2011-11-08 11:04:06
【问题描述】:
我正在尝试检测 ASP.NET 应用程序何时因 web.config 文件被修改或 IIS 应用程序池被手动回收而被回收。
一开始我认为 ASP.NET 的 Application_End 方法会起作用,并尝试了以下方法:
protected void Application_End(object sender, EventArgs e)
{
File.AppendAllText("log.txt", DateTime.Now + "\n");
}
该文件是在第一次更改 web.config 文件时创建的,但随后的更改并未触发该事件。同样,在 IIS 中进行测试时,第一个手动应用程序池回收创建了文件,但后来的没有 - 就好像 Application_End 事件只触发一次。
我将如何检测每次池/应用程序回收?
【问题讨论】:
-
你不能使用 Application_Start 吗?我猜某些事件(例如关机或断电)不会让您知道何时调用 Application_End。
-
您是否确定在更改 web.config 文件后访问了应用程序中的页面,所以它结束然后重新开始?因为如果它不再启动,我可以看到阻止 Application_End 之后触发。
标签: c# asp.net iis application-pool