当我尝试使用System.Diagnostics.PerformanceCounterCategory
类时,如本例所示:
if (PerformanceCounterCategory.Exists("Network Interface")) {
// ...
}
条件时出现Win32Exception
HRESULT -2147467259 ,并显示以下消息:
无法启动服务,因为它已被禁用或 因为它没有与之关联的已启用设备。
我在Windows 10下使用该类所需的Windows服务是什么?我认为我已经启用了所有相关的性能计数器(和网络)Windows服务。
注意:我需要所需Winows服务的标识符名称(以及服务的英文显示名称)。
答案 0 :(得分:4)
作为this SO回答指出,可能在性能计数器内部存在一些错误。尝试启动它以重置系统:
cd %systemroot%\system32
lodctr /R
另外,请检查this以了解原始详情。
更新(1)
这也可能是一个命名问题:如果你做了
lodctr /Q
(或{#1}}来自C#)
您将获得计算机上所有可用性能计数器的列表。也许该计数器未注册或以其他名称注册。
您可以查看this答案以获取其他有用的详细信息。
希望有所帮助:)
答案 1 :(得分:2)
您的应用程序是以64位运行吗?
我会查看Performance Counter DLL Host
服务并确保其未被停用和/或正在运行。
服务名称:PerfHost
说明
允许远程用户和64位进程查询性能 计数器由32位DLL提供。如果此服务仅停止 本地用户和32位进程将能够查询性能 计数器由32位DLL提供。