ASP.NETアプリケーションからいくつかのパフォーマンスカウンターを読み取ろうとしています。すると、「レジストリキー 'Global'へのアクセスが拒否されました」というエラーが表示されます。
ユーザーIIS AppPool\DefaultAppPool
を使用して here および here の指示に従ってみました。これは、アプリプールで使用するように構成されたIDです。
そのユーザーをPerformance Monitor Usersグループに追加しました。
ユーザーを追加した後、コンピューターを再起動しました。しかし、まだエラーが発生します。
また、ユーザーIUSRおよびNETWORK SERVICEをPerformance Monitor Usersグループに追加しようとしましたが、これらも機能しません。必死になって、ユーザー「Everyone」をPerformance Monitor Usersグループに追加してみましたが、実際には機能します。しかし、私の目標は、実稼働環境でアプリケーションの統計を記録することであり、実稼働サーバー上のそのグループに「全員」を追加したくありません。
セキュリティ例外を生成せずにパフォーマンスカウンターを読み取るには、他に何が必要ですか?
私は解決策を見つけました。一方、インターネット上のさまざまなリンクからIDを使用するように指示されていますIIS APPPOOL\DefaultAppPool
、それは完全な話ではありません。実際に「DefaultAppPool」という名前のアプリケーションプールにアプリケーションを割り当てている場合は、onlyが機能します。
ServerFaultのこのリンク には答えがあります。アプリプールの名前を使用する必要があります。私の場合、アプリプールの名前は「ステージング」であったため、正しいユーザーはIIS APPPOOL\staging
。このユーザーをPerformance Monitor Usersグループに入れると、問題が修正されました。