我的应用程序正在共享托管环境中运行。我的应用程序有一个专用的应用程序池。我一直在对第一次访问和预编译性能进行一些测试,并一直在跟踪我的应用程序何时启动和关闭。
在我的 Global.asax 中,我在 Application_Start 和 Application_End 中有一些日志记录代码。我通常可以从日志中看到应用程序空闲并关闭时,然后有人访问并且它会重新启动。
但是,我也看到记录了一次关闭,然后大约 13 分钟后再次关闭的情况;中间没有启动。
我还看到连续出现两家初创公司的情况。我猜这些可能是回收,但为什么没有关闭日志条目?
我真正想知道是否有更好的方法来跟踪我的应用程序何时启动、何时关闭以及是否由于空闲池或回收而关闭。我无权访问 Windows 事件日志,因此如果可能的话,我需要从我的应用程序执行此操作。
最佳答案
Application_Start 和 Application_End 在您的应用程序中每个生命周期只能调用一次,MSDN confirms this 。
在不了解您的托管环境的情况下,您的网络主机可能会在多个工作池或 IIS 实例上运行您的网站。您的应用程序池也可能由于池中的其他应用程序而意外崩溃。
如果无法访问事件日志或基本 Web 主机控制面板以外的任何内容,最好的日志记录方式就是使用 Global.ASAX 现在正在执行的操作
关于asp.net - 记录 IIS 应用程序池启动、关闭和回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4403838/