![IIS 工作进程或 AppDomain 的生存期](https://linux22.com/image/500178/IIS%20%E5%B7%A5%E4%BD%9C%E8%BF%9B%E7%A8%8B%E6%88%96%20AppDomain%20%E7%9A%84%E7%94%9F%E5%AD%98%E6%9C%9F.png)
我有一个 ASP.NET 应用程序托管在 IIS 中,并且我已禁用自动工作进程回收/关闭。我想大致了解该应用程序在没有重新加载的情况下连续运行了多长时间。
我的想法是,可以从中收集这些信息的一个来源是有关工作进程上次回收时间的信息,可能是在 IIS 日志或性能计数器中。或者,从有关 AppDomain 本身创建时间的信息中,可能是在性能计数器中。无论哪种方式,我都找不到任何此类信息。除了更改代码外,是否有可能为已部署的应用程序确定这一点?
也许是第三方工具监控进程?或者是来自 IIS 事件日志中的信息?
最初发布于:https://stackoverflow.com/questions/1835469/lifetime-of-worker-process-or-appdomain
答案1
我不知道 AppDomain 的任何计数器信息,但是在 perfmon 中,您可以获得进程 - > 已用时间,它显示应用程序池已运行了多长时间。
答案2
我知道您说过不想更改任何代码,但如果可以的话,您只需在 asp.net 应用程序的 Application_Start 事件中记录启动时间和进程 ID。然后,您既拥有应用程序的运行时间,又拥有应用程序池,因为新的 PID 意味着回收的应用程序池。