2013-06-25 27 views
26

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

私は私のアプリケーションプールを使用するように設定されたアイデンティティであるユーザー IIS AppPool\DefaultAppPoolを使用して、指示 herehere次試してみました

Screenshot of App Pool configuration

私は、パフォーマンスモニターのユーザーにそのユーザーを追加しましたグループ:

enter image description here

とユーザーを追加した後、私は自分のコンピュータを再起動します。しかし、私はまだエラーを取得しています。

ユーザーIUSRとネットワークサービスをPerformance Monitor Usersグループに追加しようとしましたが、これらはどちらも機能しません。私は、「Everyone」というユーザーをPerformance Monitor Usersグループに追加しようとしましたが、実際には動作します。しかし私の目標は、アプリケーションの統計情報をプロダクションでログに記録することです。プロダクションサーバーでそのグループに「Everyone」を追加する必要はありません。

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

+0

マシンのIIS_IUSRSグループに対するアクセス許可を与えようとしましたか?それは、通常、ApplicationPoolIdentityを使用しているときにIISが実行しているものです。 – Josh

答えて

42

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

This link at ServerFaultが答えます。あなたは、あなたのアプリケーションプールの名前を使用する必要があります。私の場合、アプリケーションプールの名前は "ステージング"なので、正しいユーザーはIIS APPPOOL\stagingでした。このユーザーをPerformance Monitor Usersグループに配置すると、問題が修正されました。

+8

私が気づいたことを追加する2つのこと: *何もしない、またはアプリケーションプールをリサイクルするだけでは新しい権限を取得するには不十分ですが、マシンを再起動する必要はありません。しかし、iisresetは仕事をします。 (私の場合はWindows 2012 Server)。 *アプリケーションプールを別のIDとして実行する場合は、そのIDをPerformance Monitor Usersグループに追加するだけで済みます。つまり、特別なIIS APPPOOLユーザーを追加する必要はありません。 – sellotape

+1

何が@sellotape Windows 2008 R2の同じケースです – wonster

+0

FYI私はWindowsサービスでこれを使用して....と "パフォーマンスモニタのユーザー"グループにユーザーを追加した後にサービスを再起動しました! – Seabizkit

関連する問題