我有一个ASP.NET应用程序托pipe在IIS中,并禁用了自动工作进程回收/closures。 我想大致了解应用程序连续运行多久,而不是重新加载。
我的想法是,可以从中收集到的一个来源是有关工作进程何时最后回收的信息,可能在IIS日志或性能计数器中。 或者,也可以从关于何时创buildAppDomain本身的信息,也许在性能计数器。 无论如何,我找不到任何这样的信息。 改变代码的缺点,是否有可能确定这已经部署的应用程序?
也许是监视进程的第三方工具? 或从事件日志中的IIS信息?
最初张贴在SO: https : //stackoverflow.com/questions/1835469/lifetime-of-worker-process-or-appdomain
我不知道AppDomain的任何计数器信息,但是在perfmon中,您可以获取Process – > Elapsed Time,它显示应用程序池已经运行了多长时间。
我知道你说过你不想改变任何代码,但如果这是一个选项,你可以在asp.net应用程序的Application_Start事件中logging开始时间和进程ID。 然后,您将应用程序的运行时间和应用程序池都作为一个新的PID意味着一个循环的应用程序池。