トップ 一覧 検索 ヘルプ RSS ログイン

PerformanceCounter で InvalidOperationException が発生するの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
{{category コンピュータ}}
!!!現象
Windows7 etc.. にて以下コード例のようにパフォーマンスカウンタ読み込みをしようとしたとき、
オブジェクト生成時に例外が出ることがあります。

 // システムのトータル稼働時間を得るカウンタ
 upTime = new PerformanceCounter("System", "System Up Time",true);

まず、引数のカテゴリ名称、カウンタ名称を確認してください。
「コントロールパネル」>「管理ツール」>「パフォーマンスモニター」画面を開き、
次に、左側ツリーの「パフォーマンスモニター」をクリックして右側ペイン上部の緑の「+(追加)」で出てくる「カウンターの追加」ダイアログのリストを見てみます。

本来であれば、ここにカテゴリ、カウンタ名称が存在するはずです。

{{ref_image perfmon.gif}}

このとき、本来存在するはずのカテゴリ "System" や項目 "System Up Time" が現れない場合、
LODCTR /R コマンドで、レジストリの文字列と情報を再構築することでこれらの項目が回復する場合があります。

 LODCTR /R
 パフォーマンス レジストリの文字列と情報を、現在のレジストリ設定と
 バックアップ INI ファイルに基づいて新たに再構築します。

※LODCTR.EXE は Windows のシステムフォルダにあります。

 エラー: パフォーマンス カウンターの設定をシステムのバックアップ ストアから再構築
 できませんでした。エラー コードは 5 です

※上記のようなエラーが出て再構築できない場合は、管理者権限で(コマンドプロンプトを管理者権限で起動して)実行してみてください。