1. ホーム
  2. asp.net

[解決済み] イベントログへの書き込み時にSystem.Security.SecurityExceptionが発生する。

2022-04-20 01:17:02

質問

ASP.NETアプリをServer 2003(およびIIS6)からServer 2008(IIS7)に移植しようとしています。

ブラウザでページを見ようとすると、このようになります。

アプリケーション '/' でサーバー エラーが発生しました。

セキュリティ例外

説明 アプリケーションは、セキュリティポリシーで許可されていない操作を実行しようとしました。このアプリケーションに必要な権限を与えるには、システム管理者に連絡するか、設定ファイルでアプリケーションの信頼レベルを変更してください。

例外の詳細です。System.Security.SecurityException。ソースは見つかりませんでしたが、一部またはすべてのイベントログを検索することができませんでした。アクセスできないログがあります。セキュリティ

ソースエラーです。

現在の Web リクエストの実行中に、処理されない例外が発生しました。例外の発生元と発生場所に関する情報は、以下の例外スタックトレースで確認することができます。

スタックトレース

[SecurityException。ソースは見つかりませんでしたが、一部またはすべてのイベントログを検索できませんでした。アクセスできないログがあります。セキュリティ]]。

System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly) +562 System.Diagnostics.EventLog.SourceExists(String source, String machineName) +251

[snip]です。

以上が、私が試行錯誤して解決したことです。

  1. Everyone」にキーへのフルアクセス権限を与える。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security . これはうまくいきました。しかし、当然ながら本番ではこんなことはできません。そこで、アプリを数分間実行した後に「Everyone」パーミッションを削除したところ、エラーが再び現れました。

  2. アプリケーションログとセキュリティログにソースを作成し(regeditで存在も確認)、昇格した権限でインストールしましたが、エラーは残りました。

  3. でアプリに完全な信頼レベルを与えました。 web.config ファイル(そして appcmd.exe ) が、役に立たない。

どなたか、ここで何ができるのか、お分かりになる方はいらっしゃいますか?

追記:この続報です 質問 . 私は与えられた答えに従いましたが、無駄でした(上記#2参照)。

解決方法は?

解決策は、quot;Network Service"アカウントに、EventLog/Securityキーの読み取り権限を与えることでした。