这是一个 ASP.NET MVC 网站。我在 Application_end 方法中添加了一些日志。
我知道在某些情况下会调用 Application_end,例如应用程序池的回收、web.config 文件的更改或 bin 文件的更改。但是我这里的问题很奇怪。我的 ASP.NET MVC 网站中的 Application_end 方法几乎同时被奇怪地调用了很多次。
这是我的代码:
protected void Application_end()
{
FileLog.Info("The website is starting to quit...", LogType.Info);
PersistentService.RunSignal = false;
//To wait for pesistent action finish
Task.WaitAll(_tasks.ToArray(), 1000 * 300);
FileLog.Info("The website finish quit...", LogType.Info);
}
可以看到,Application_end 在同一秒内被调用了 4 次。我猜,如果那个时候应用池被回收的话,可以调用一次,但是为什么要调用4次呢?
有人可以帮忙吗?谢谢。
编辑:我注意到我的应用程序池最多有 5 个工作进程。是不是每个工作流程的结束都会调用Application_end方法?