2

我的应用程序在共享托管环境中运行。我的应用程序确实有一个专用的应用程序池。我一直在对第一次访问和预编译性能进行一些测试,并一直在跟踪我的应用程序何时启动和关闭。

在我的 Global.asax 中,Application_Start 和 Application_End 中有一些日志记录代码。我通常可以从我的日志中看到应用程序空闲并关闭时,然后有人访问并重新启动。

但是,我也看到记录关机然后在大约 13 分钟后再次关机的情况;中间没有启动。

我还看到连续有两个 Startup 的实例。我猜这些可能是一个回收,但为什么不会有一个关闭日志条目?

我真的很想知道是否有更好的方法来跟踪我的应用程序何时启动、何时关闭以及是否由于空闲池或回收而关闭。我无权访问 Windows 事件日志,因此如果可能,我需要从我的应用程序中执行此操作。

4

1 回答 1

3

Application_Start 和 Application_End 在您的应用程序中每个生命周期只能调用一次,MSDN 确认了这一点

在不了解您的托管环境的情况下,您的 Web 主机可能在多个工作池或 IIS 实例上运行您的网站。由于池中的其他应用程序,您的应用程序池也可能意外崩溃。

如果无法访问事件日志或除基本 Web 主机控制面板之外的任何其他内容,您最好的记录方式就是您现在正在做的事情,使用 Global.ASAX

于 2010-12-09T23:02:24.790 回答