1. ホーム
  2. asp.net

[解決済み] パフォーマンスカウンターにアクセスすると「レジストリキー'Global'へのアクセスは拒否されました」と表示される。

2022-02-17 09:49:58

質問

ASP.NETアプリケーションからパフォーマンスカウンターを読み取ろうとしています。その際、「レジストリキー 'Global' へのアクセスは拒否されました」というエラーが表示されます。

次の手順で試してみました。 ここで こちら を使用すると、ユーザー IIS AppPool\DefaultAppPool これは、私のアプリプールが使用するように設定されている ID です。

そのユーザーをPerformance Monitor Users グループに追加しました。

そして、ユーザーを追加した後、コンピュータを再起動しました。しかし、まだエラーが出ています。

また、IUSRとNETWORK SERVICEというユーザーをPerformance Monitor Usersグループに追加してみましたが、こちらもうまくいきません。やけくそで、ユーザー "Everyone" を Performance Monitor Users グループに追加してみましたが、これは実際に動作します。しかし、私の目標は本番環境でアプリケーションの統計を記録することであり、本番サーバーのそのグループに "Everyone" を追加したくはありません。

セキュリティ例外を発生させずにパフォーマンスカウンターを読み取るには、他に何が必要でしょうか?

解決方法は?

解決策が見つかりました。インターネット上の様々なリンクでは、IDを使用するように書かれているのに対して IIS APPPOOL\DefaultAppPool しかし、それは全容を表しているわけではありません。それは だけ は、実際にアプリケーションを "DefaultAppPool" という名前のアプリプールに割り当てている場合に動作します。

ServerFaultのこのリンク に答えがあります。アプリプールの名前を使用する必要があります。私の場合、アプリプールの名前は "staging" だったので、正しいユーザは IIS APPPOOL\staging . このユーザーをPerformance Monitor Usersグループに入れると、私の問題は解決しました。