性能监视器无法添加来自 .NET 数据提供程序的计数器

性能监视器无法添加来自 .NET 数据提供程序的计数器

我正在尝试使用性能监视器来监视我的数据库连接,但是由于某种原因我无法再添加计数器。

除两个 .NET 数据提供程序(用于 Oracle 和 SQL Server)之外的每一组计数器都运行良好。

不到 10 分钟前它还在运行,然后就突然停止了。我试过重启盒子,但没什么效果。

关于如何重新启用这些功能有什么建议吗?

答案1

解决方案如下:

打开 cmd 并运行以下命令:

regsvr32 /u netfxperf.dll
regsvr32 netfxperf.dll

注意:看来,如果您正在运行分析器,并且在没有先停止 IIS 的情况下终止它,就会遇到此问题。

答案2

注意:接受的答案似乎不适用于 Windows 7 x64。

在较新的平台上,netfxperf.dll 似乎根本不是 COM dll。因此,在其上使用 regsvr32 不会起作用。可以使用多种技术来验证这一点 - 检查注册表、运行垃圾桶,其中包括使用 Dependency Walker。

对我来说,按照描述重建我的性能计数器(lodctr /R)这里重新启动即可解决问题。

答案3

我也遇到过这个问题。在尝试打开性能计数器时发生一定次数的失败后,Windows 似乎会禁用它们。我通过删除注册表项覆盖了此问题,并且再也没有遇到问题。

打开 regedit,在 HKLM\SYSTEM\CurrentControlSet\Services.NET Data Provider 下查找 SqlServer\Performance。我不记得确切的键名(DisablePerformanceCounters?),但它的名字会让你想起它被禁用的原因。删除该键。我认为它会立即生效,但你可能需要重新启动。

我知道这听起来有点可疑,特别是因为我不记得键名了,但我知道我看到了这种行为并且删除该键就为我解决了这个问题。

相关内容