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

ron*_*nin 6 iis windows-server-2003 monitoring performance-monitoring wmi

我正在我的 64 位 Web 服务器上执行监控任务,该服务器有几个以 32 位模式运行的应用程序池。我在 perfmon 中使用 .Net CLR Memory 对象来监视它们。但是,我的性能监视器显示 0,除了 GC 句柄和正在使用的接收器块数之外的所有内容。其余的应用程序池工作正常。在以完全相同的方式配置的另一台服务器(在 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 Memory 对象中第一个值为0 的服务器,事件日志中没有错误消息。

Mat*_*sen 1

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

lodctr /T:W3SVC
lodctr /T:InetInfo
lodctr /T:ASP
Run Code Online (Sandbox Code Playgroud)

正如http://support.microsoft.com/kb/932813中所建议的