アプリケーション (IIS7 AppPool で実行されている) がパフォーマンス カウンター カテゴリとそのデータを削除/追加できるようにするために、アクセス許可を取得する際に問題が発生しています。私は次のようなコードを持っています:
if (!PerformanceCounterCategory.Exists(CategoryName))
{
var counters = new CounterCreationDataCollection();
var opsIn = new CounterCreationData
{
CounterName = "Test Counter",
CounterHelp = "Test Counter Help",
CounterType = PerformanceCounterType.RateOfCountsPerSecond32
};
counters.Add(opsIn);
PerformanceCounterCategory.Create(CategoryName, "Service Layer Instrumentation",
PerformanceCounterCategoryType.SingleInstance,
counters);
}
目的は、まだ作成されていないシステムでパフォーマンス カウンターを作成することなので、静的なインストーラーの動作に縛られることはありません (大騒ぎせずにカウンターを変更できるようにしたいのです)。これまでのところ、これが機能する場合はうまく機能します。
管理者として実行可能ファイルでこのコードを実行すると、問題はありません。ただし、IIS サービス内で実行すると、AppPool にはカテゴリの変更を実行するための正しいアクセス許可がありません。WMI アクセス許可を正しく機能させることが可能であることは、以前にテスト サーバーを使用したデモで行ったことがあるので、事実としては知っていますが、それは数か月前のことで、疲れていて、ギリギリでした。全体がぼやけています。必要なセキュリティの変更を含めるためにインストール プロセスを形式化しようとして戻ってきたので、結果を再現することはできません。
Google はほんのわずかしか役に立たず、機能する前にいくつかのページから指示を寄せ集めなければならなかったことをはっきりと覚えています。IIS アプリケーション プールのパフォーマンス カウンター カテゴリの編集を有効にするための完全な手順を推奨する人はいますか?