ASP .NET アプリからアプリケーション イベント ログにログを記録したいと考えています。EventLog.SourceExists を呼び出して、最初にイベント ソースが存在するかどうかを判断し、存在しない場合は作成します。
MSDN (http://msdn.microsoft.com/en-us/library/6s7642se.aspx) で説明されているように、「Windows Vista 以降または Windows Server 2003 でイベント ソースを検索するには、管理者権限が必要です。この要件の理由は、セキュリティを含むすべてのイベント ログを検索して、イベント ソースが一意かどうかを判断する必要があるためです。Windows Vista 以降、ユーザーはセキュリティ ログにアクセスする権限を持っていないため、SecurityException がスローされます。 "
私の場合、NetworkService ユーザーには管理者権限がないため、EventLog.SourceExists は MSDN に記載されているように SecurityException をスローします。
私の質問は、EventLog.SourceExists への呼び出しを防御的にコーディングするにはどうすればよいですか? EventLog.SourceExists を呼び出す前に、イベント ソースを検索する権限があるかどうかを確認するために呼び出すことができるものはありますか?
または、 SecurityException をキャッチし、catch ブロック内で他のアクションを実行する唯一のオプションです。たとえば、既存のイベントソースにログを記録します。
ありがとう
ケビン