3

ASP.NET アプリケーションから新しいパフォーマンス カテゴリを作成しようとすると、エラーが発生します。最初はレジストリ関連の問題がいくつかありましたが、ユーザーにいくつかのレジストリ キーに対するアクセス許可を与え、それを "Performance Log Users" および "Performance Monitor Users" グループに追加することで解決しました。しかし、今は例外が発生しており、他に何を試すべきかわかりません。

この行を実行するとエラーが発生します。

PerformanceCounterCategory.Create(testName, testDescription, PerformanceCounterCategoryType.Unknown, counters);

testNameおよびtestDescriptionsはカテゴリの名前と説明を含む文字列変数であり、カウンターは 3 つのカウンターを持つ CounterCreationDataCollection です。

例外のスタック トレースは次のとおりです。

System.Diagnostics.PerformanceCounterLib.RegisterFiles (文字列 arg0、ブール値の登録解除) で System.Diagnostics.PerformanceCounterLib.RegisterCategory (文字列のカテゴリ名、PerformanceCounterCategoryType カテゴリタイプ、文字列のカテゴリヘルプ、CounterCreationDataCollection creationData) で System.Diagnostics.PerformanceCounterCategory.Create (文字列のカテゴリ名、文字列のカテゴリヘルプ) C:\CL.Libraries\PerformanceTestUtils.cs:line 104 の CL.Libraries.PerformanceTestUtils.InitializeCounters(List`1 usedCounters, String testName, String testDescription) の PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData)

画像を投稿できないようですので、ここに私が得たものがあります:

" UnauthorizedAccessException がキャッチされました:

アクセスが拒否されたため、パフォーマンス カテゴリ 'C:\TEMP\tmpD5E8.tmp' を作成または削除できません。"

レジストリにカテゴリ キーが作成されます。上記のファイルが作成され、その後削除されます。ユーザーに一時フォルダーへの明示的なアクセスを許可しましたが、それも役に立ちませんでした。

どんな助けでも大歓迎です。

4

2 に答える 2

4

あなたのコードは管理者権限なしで実行されており、パフォーマンス カウンターを読み取ろうとしました。

管理者権限が必要です

上記のメッセージは、MSDN http://msdn.microsoft.com/en-us/library/sb32hxtc.aspxから取得したものです。

于 2012-07-24T17:25:27.733 に答える
1

HatSoft は完全に正しいです。パフォーマンス カウンターを作成するには管理者アクセスが必要です。これは通常、カウンターを作成するために 1 回だけ実行する必要があります。それらが作成されると、パフォーマンス カウンターを名前で簡単にインスタンス化して使用することができます。

通常、(アプリケーションの開発後) インストール手順にプロセスのこのステップを配置します。セットアップが完了すると、アプリケーションはカウンターを自由に使用できます。

パフォーマンス カウンターの基本的な使用方法を示す GitHub のプロジェクトがあります。開始するのに役立つはずです: https://github.com/stemarie/Karell.PerfCounters VS を管理者として実行する必要があります (右クリック、管理者として実行)。 ) 単体テストが適切に実行されるようにします。

于 2012-09-26T16:27:49.147 に答える