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

我在64位Web服务器上执行一个监视任务,该服务器有32位模式的应用程序池。 我正在使用perfmon中的.Net CLR Memory对象来监视它们。 但是,除了GC句柄和正在使用的接收块数量之外,我的性能监视器显示为0。 其余的应用程序池工作正常。 在另一台configuration相同的服务器(在64位IIS上运行的32位应用程序池)上,WMI甚至不会枚举所有的w3wp实例。

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

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

  1. “ASP”服务的性能库“C:\ WINDOWS \ system32 \ aspperf.dll”的configuration信息与存储在registry中的可信性能库信息不匹配。 这个库中的函数不会被视为可信。 (事件ID 2003,来源Perflib)

  2. “W3SVC”服务的性能库“C:\ WINDOWS \ system32 \ inetsrv \ w3ctrs.dll”的configuration信息与存储在registry中的可信性能库信息不匹配。 这个库中的函数不会被视为可信(Event ID 2003,Source Perflib)

  3. “InetInfo”服务的性能库“C:\ WINDOWS \ system32 \ infoctrs.dll”的configuration信息与存储在registry中的受信任的性能库信息不匹配。 这个库中的函数不会被视为可信(Event ID 2003,Source Perflib)

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

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

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

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

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

http://support.microsoft.com/kb/932813中的build议