我正在尝试使用性能监视器监视我的数据库连接,但由于某种原因,我无法再添加计数器。
除了两个 .NET 数据提供程序(用于 Oracle 和 SQL Server)之外,每组计数器都可以正常工作。
这在不到 10 分钟前还有效,当时它刚刚停止。我试过重新启动盒子,这没有任何区别。
关于如何弄清楚如何重新启用这些的建议?
我正在尝试使用性能监视器监视我的数据库连接,但由于某种原因,我无法再添加计数器。
除了两个 .NET 数据提供程序(用于 Oracle 和 SQL Server)之外,每组计数器都可以正常工作。
这在不到 10 分钟前还有效,当时它刚刚停止。我试过重新启动盒子,这没有任何区别。
关于如何弄清楚如何重新启用这些的建议?
这是解决方案:
打开 cmd 并运行以下命令:
注意:似乎如果您正在运行分析器,并且没有先停止 IIS,就将其终止,您会遇到此问题。
注意:接受的答案似乎不适用于 Windows 7 x64。
似乎在较新的平台上,netfxperf.dll 根本不是 COM dll。因此,在它上面使用 regsvr32 是行不通的。这可以使用多种技术来验证 - 检查注册表、运行Dumpbin、使用 Dependency Walker 等。
对我来说,按照这里的描述重建我的性能计数器(lodctr / R)并重新启动解决了这个问题。
我也遇到过这个问题。在尝试打开性能计数器时发生一定数量的故障后,Windows 似乎禁用了它们。我通过删除注册表项覆盖了这一点,并且再也没有遇到问题。
打开 regedit,然后查看 HKLM\SYSTEM\CurrentControlSet\Services.NET Data Provider for SqlServer\Performance。我不记得确切的键名(DisablePerformanceCounters?),但它的名字会突然出现在你身上,因为它会导致它被禁用。删除密钥。我认为它会即时生效,但您可能需要重新启动。
我知道这听起来有点粗略,特别是因为我不记得密钥名称,但我知道我看到了这种行为并删除了为我修复它的密钥。