2

当我使用检查性能类别的存在时

PerformanceCounterCategory.Exists("myCategory")

在不存在该类别的系统(XP SP3 的全新安装)上,我收到以下异常...

    Input string was not in a correct format.
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
       at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
       at System.Int32.Parse(String s, IFormatProvider provider)
       at System.Diagnostics.PerformanceCounterLib.GetStringTable(Boolean isHelp)
       at System.Diagnostics.PerformanceCounterLib.get_NameTable()
       at System.Diagnostics.PerformanceCounterLib.get_CategoryTable()
       at System.Diagnostics.PerformanceCounterLib.CategoryExists(String machine, String category)
       at System.Diagnostics.PerformanceCounterCategory.Exists(String categoryName, String machineName)
       at System.Diagnostics.PerformanceCounterCategory.Exists(String categoryName)

不想责怪框架:)我做错了什么?

编辑:检查性能对象列表后 - 它充满了数字而不是普通文本 - 看起来列表已损坏 - 打算试试这个 KB

4

1 回答 1

1

行。原来是一个非常腐败的注册表。为了解决这个问题,我从 xp 光盘中获得了(来自问题中的 KB)perfc009.dat 和 perfh009.bat(请参阅此 KB以扩展光盘)并将它们弹出到 %systemroot%/system32 中。

于 2009-07-20T11:21:32.993 回答