我一直在使用以下 WMI 查询来检查我的 Windows 2008 Web 服务器上当前正在运行多少个 IIS 站点:
SELECT ApplicationsRunning FROM Win32_PerfRawData_ASPNET4030319_ASPNETv4030319
将这些 Web 服务器替换为 2012 版后,此查询始终返回 0,即使我的网站运行的是 ASP.Net 4。
有谁知道为什么会发生这种情况,以及如何解决它?
答案1
我找到了这篇知识库文章:http://support.microsoft.com/kb/2869514
安装 .NET 4.5 后,您无法使用 WMI 访问性能数据。例如,当您尝试获取 Win32_PerfFormattedData_ASPNET_ASPNETApplications 性能计数器的值时,使用 WMI 返回的值始终为 0。
这是为安全修复而设计的。只有管理员和性能日志/监控器可以访问 asp.net 性能信息。
不幸的是我还没有找到让它发挥作用的方法。