请求的性能计数器不是一个自定义计数器,它必须被初始化为ReadOnly

每当我尝试debugging.NET Windows服务应用程序时,我都会在性能计数器上得到有关ReadOnly属性的重复错误。 这个应用程序可以在x86 windows vista或x86 windows 2003上正常工作。它只是在我的新的64位开发机器上停止工作。

我已经在pipe理员模式下在64位和32位命令行VCVARS.bat上运行相关的InstallUtil调用。 我没有错误设置类别和每个perf计数器 。 但是,无论我是否只将read_tcct设置为只读,我都会得到:

请求的性能计数器不是一个自定义计数器,它必须被初始化为ReadOnly。

UPDATE

我重新安装了32位版本的Windows 7的机器,奇怪我仍然得到这个错误。 唯一改变的是从Windows Vista Business迁移到Windows 7 Professional。 这响铃吗?

这是由于性能计数器(或类别) 不存在 ,但带有可怕的错误消息。

看看这个柜台的perfmon,它应该在相关的机器上丢失。

我发现这种情况发生在.net性能指标有时(不知道为什么),但使用lodctr 1得到他们回来。 如果你指出你正在试图获得哪个性能计数器,我们可能会给你更多的帮助。

  1. 请注意,内联示例是.Net 1.1,因此针对不同的框架进行调整。

我遇到了这个问题的一个变种,而我可以在reflection器中看到.net性能计数器标签,它实际上没有计数器。

我不得不重新添加它们

lodctr /R cd C:\Windows\Inf\.NETFramework lodctr corperfmonsymbols.ini