PerformanceCounterCategory 无法加载计数器名称数据,因为从注册表读取的索引

问题信息

      最近在项目中使用开源Socket框架SuperSocket,今日调试时,突然爆出“无法加载计数器名称数据,因为从注册表读取的索引“”无效”的错误。出错的StackTrace如下:

System.InvalidOperationException: 无法加载计数器名称数据,因为从注册表读取的索引“”无效。
在 System.Diagnostics.PerformanceCounterLib.GetStringTable(Boolean isHelp)
在 System.Diagnostics.PerformanceCounterLib.get_NameTable()
在 System.Diagnostics.PerformanceCounterLib.get_CategoryTable()
在 System.Diagnostics.PerformanceCounterLib.CounterExists(String category, String counter, Boolean& categoryExists)
在 System.Diagnostics.PerformanceCounterLib.CounterExists(String machine, String category, String counter)
在 System.Diagnostics.PerformanceCounter.InitializeImpl()

        由于在之前的使用中,一直运行比较正常,但昨天晚上系统进行自动更新,且更新过程中出现了蓝屏,有可能破坏了注册表。

问题定位:

        查阅相关资料,根据网友提示的,在cmd命令行中输入perfmon 查看时,弹出了错误提示框,基本可判定是注册表相关出现了错误。  

解决方法:

        以管理员运行cmd.exe,输入LODCTR /R ,然后等待系统提示如下信息

即可修复,再次输入perfmon可验证,不再弹出错误提示。


你可能感兴趣的:(SuperSocket,问题修复)