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

Ok。非常に破損したレジストリであることが判明しました。修正するために、xp ディスクから (問題の KB から) perfc009.dat と perfh009.bat を取得し (ディスクから展開するには、この KBを参照してください)、それらを %systemroot%/system32 にポップしました。

于 2009-07-20T11:21:32.993 に答える