![Windows 性能计数器 ASP.NET 应用程序:为什么我的 www-service 实例不可见?](https://linux22.com/image/497840/Windows%20%E6%80%A7%E8%83%BD%E8%AE%A1%E6%95%B0%E5%99%A8%20ASP.NET%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%9A%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%20www-service%20%E5%AE%9E%E4%BE%8B%E4%B8%8D%E5%8F%AF%E8%A7%81%EF%BC%9F.png)
一位客户抱怨说,一个基于 Web 的工具加载速度非常慢,我想使用管理工具/性能来监控请求执行时间。因此,我选择 ASP.NET Apps v2.0.50727 作为性能对象,选择请求执行时间作为性能计数器。但是,在“从此列表中选择实例”中,我找不到我的网站的实例 ID。该网站使用 HTTPS——这可能是问题所在吗?任何提示都值得赞赏。
答案1
问题答案:该网站本身已被停止,因此没有出现在实例列表中。
答案2
正如您所指出的,如果网站停止运行,就会发生这种情况。性能监视器中的信息是实时的,并且如果应用程序池不仅启动了,而且还收到了一些流量使其启动,则只有一个 w3wp.exe 工作进程。
此外,您不仅需要在网站停止时才需要担心这一点。性能对象是按 PID 定义的。每当应用程序池回收时,PID 都会发生变化,这在 IIS 中很常见,因此如果您在 perfmon 中监视某个进程,请确保经常更新它,或者使用 System Center Operations Manager 之类的工具,它可以为您维护应用程序池到 PID 的映射。
另外,如果您还没有这样做,下面是如何让 PID 显示在 perfmon 中的方法:http://weblogs.asp.net/owscott/archive/2007/03/19/registry-change-for-perfmon-and-pid-data.aspx
答案3
如果您使用 perfmon 中的 pid 注册表更改,那么您可以通过系统事件查看器找到该 pid。
为应用程序池“[app pool]”提供服务的进程 ID 为“[pid]”的工作进程已请求回收,因为该工作进程已达到其允许的处理时间限制。