PerformanceCounterCategory.GetCategories() 抛出异常 ArgumentException - 对参数 'categoryName' 的值 '' 无效。

9
当我尝试运行这段代码时:
var categories = System.Diagnostics.PerformanceCounterCategory.GetCategories();

我遇到了ArgumentException异常。

我已经尝试过以下方法,但都没有成功:

  • 手动重建性能计数器库http://support.microsoft.com/kb/300956
  • lodctr /R
  • 使用本地管理员登录。
  • 禁用用户访问控制(UAC)
  • 将我的用户添加至性能监视器用户组。

无论我在Windows 7 Enterprise SP1 64位计算机上运行Visual Studio 2008、2010还是2012,结果都相同。

我将非常感激任何帮助。

谢谢。

1个回答

13

我遇到了同样的问题。

这是在一台安装了NVidia Quadro 2000显卡的机器上发生的。

卸载“NVidia WMI”产品解决了这个问题... :)


好知道不只是我们,但人们确实通过艰难的方式学到了这一点... :) - RnR
不错,但你是怎么发现的呢? - treehouse
这是一个漫长的故事 - 我们有一个性能回归框架,它使用Windows性能计数器。我们在AMD显卡上使用它没有问题,但是我们偶尔会遇到与NVidia相关的问题。我们无法追踪到问题所在,所以我们一直使用AMD和正常工作的NVidia配置。从前,有一次我们让它正常工作了,但在同事更新驱动程序后的下一个小时立即停止工作,于是我开始联系起来,意识到在我经常使用的驱动程序手动设置中,有那些我过去安装时总是取消选择的“垃圾”选项... :) - RnR
1
2018年了,这仍然是一个问题 - 我有一个名为“NVIDIA WMI 2.20.0”的东西,在卸载它后,对[Diagnostics.PerformanceCounterCategory] :: GetCategories()的PowerShell调用停止失败。 - Anssssss

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接