49

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

アプリ プールが使用するように構成されている ID であるuser を使用して、hereおよびhereの手順に従ってみました。IIS AppPool\DefaultAppPool

アプリケーション プール構成のスクリーンショット

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

ここに画像の説明を入力

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

また、ユーザー IUSR と NETWORK SERVICE を Performance Monitor Users グループに追加しようとしましたが、どちらも機能しません。必死になって、ユーザー「Everyone」を Performance Monitor Users グループに追加しようとしましたが、実際に機能します。しかし、私の目標は、本番環境でアプリケーションから統計を記録することであり、本番サーバーのそのグループに「Everyone」を追加したくありません。

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

4

2 に答える 2

76

解決策を見つけました。インターネット上のさまざまなリンクでは ID を使用するように指示されていますがIIS APPPOOL\DefaultAppPool、それだけではありません。これは、実際にアプリケーションを「DefaultAppPool」という名前のアプリ プールに割り当てている場合にのみ機能します。

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

于 2013-07-02T14:00:01.953 に答える