无法使用 c# 获取特定于 SSAS 的性能计数器类别
Posted
技术标签:
【中文标题】无法使用 c# 获取特定于 SSAS 的性能计数器类别【英文标题】:Not able to get SSAS specific performance counter categories with c# 【发布时间】:2014-10-07 07:54:28 【问题描述】:我想检索 SSAS 服务的性能计数器。我可以在我的 perfmon 中看到这些计数器,它们分布在多个类别中。我还检查了我的注册表项并找到了这些计数器。但我无法使用 C# 检索这些计数器。
这是我正在使用的示例代码 sn-p-
foreach (PerformanceCounterCategory pcc in PerformanceCounterCategory.GetCategories())
if (pcc.CategoryName.StartsWith("MSOLAP"))
Console.WriteLine(pcc.CategoryName);
注意
在我的 Perfmon 中,我可以看到计数器类别
MSOLAP$Marsh:连接 MSOLAP$Marsh:锁 MSOLAP$Marsh:内存等是否可以在两个地方看到两个不同的计数器列表,即在 perfmon 和 C# 中(PerformanceCounterCategory 类)
是否有任何 SSAS 的现有 WMI 类可用于检索这些计数器。
【问题讨论】:
【参考方案1】:64 位环境中的 SSAS 仅安装 64 位计数器的库,因此, 如果您从 32 位应用程序运行代码,或者您使用的是 32 位版本 Windows PerfMon,您无法访问这些计数器。
在 64 位平台上,您拥有两个版本的 Windows Perfmon。
32 位 -> C:\Windows\SysWOW64\perfmon.exe 64 位 -> C:\Windows\System32\perfmon.exe解决方案是使用 x64 作为目标平台来构建您的应用程序。
【讨论】:
以上是关于无法使用 c# 获取特定于 SSAS 的性能计数器类别的主要内容,如果未能解决你的问题,请参考以下文章
C# 不提供 Windows 性能计数器(在 Azure 辅助角色上)