在 64 位 IIS 上运行的 32 位应用程序池监控存在问题

在 64 位 IIS 上运行的 32 位应用程序池监控存在问题

我正在 64 位 Web 服务器上执行监控任务,该服务器上有几个以 32 位模式运行的应用程序池。我正在使用 perfmon 中的 .Net CLR 内存对象来监控它们。但是,我的性能监视器显示除 GC 句柄和正在使用的接收器块数量之外的所有内容均为 0。其余应用程序池运行良好。在另一台以完全相同方式配置的服务器上(在 64 位 IIS 上运行的 32 位应用程序池),WMI 甚至没有枚举我的所有 w3wp 实例。

有人对这些问题有什么想法吗?或者是否有工具可以监视在 64 位平台上运行的 32 位应用程序池,而不是使用内置性能监视器?

此外,在 WMI 未枚举所有 w3wp 实例的服务器上,我们在事件日志中看到以下三条错误消息。

  1. “ASP”服务的性能库“C:\WINDOWS\system32\aspperf.dll”的配置信息与注册表中存储的受信任性能库信息不匹配。此库中的函数将不被视为受信任。(事件 ID 2003,来源 Perflib)

  2. “W3SVC”服务的性能库“C:\WINDOWS\system32\inetsrv\w3ctrs.dll”的配置信息与注册表中存储的受信任性能库信息不匹配。此库中的函数将不被视为受信任。(事件 ID 2003,来源 Perflib)

  3. “InetInfo”服务的性能库“C:\WINDOWS\system32\infoctrs.dll”的配置信息与注册表中存储的受信任性能库信息不匹配。此库中的函数将不被视为受信任。(事件 ID 2003,来源 Perflib)

  4. 由于该服务的性能计数器库生成一个或多个错误,已禁用此会话中“ASP.NET_2.0.50727”服务的性能计数器数据收集。强制执行此操作的错误已写入应用程序事件日志。(事件 ID 1018,来源 Perflib)

这些错误可能与我的问题有关。即使我重新注册 wbem 目录中的所有 .dll 文件,它仍然会出现。有人知道这些错误消息是什么意思,我该如何修复它们吗?

此外,对于 .Net CLR 内存对象中值为 0 的第一个服务器,事件日志中没有错误消息。

答案1

要修复第二台机器上的错误,请Lodctr从命令提示符中注册性能计数器:

lodctr /T:W3SVC
lodctr /T:InetInfo
lodctr /T:ASP

就像建议的那样http://support.microsoft.com/kb/932813

相关内容