System.Diagnostics.EventLog
インスタンスへの書き込みを含むビジネスロジックで作成したライブラリがあります。ライブラリは、通常、Windowsサービスアプリケーションから呼び出されますが、私はASP.NET MVCアプリケーションから同じライブラリ関数を呼び出そうとしています。ASP.NET MVCアプリケーションからEventLogに書き込むときのセキュリティ例外
私はこのコードを自分のコントローラの中で試して、ログに書き込む必要があるメソッドに渡すEventLogインスタンスを作成しました。
Dim log = New EventLog("Application", My.Computer.Name, "MyMVCApp")
ライブラリのメソッド内のコードは、ログに書き込もうとすると、次のエラーが生成されます。
[SecurityException: Requested registry access is not allowed.]
System.ThrowHelper.ThrowSecurityException(ExceptionResource resource) +51
Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable) +7462217
System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) +366
System.Diagnostics.EventLog.VerifyAndCreateSource(String sourceName, String currentMachineName) +194
System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData) +205
System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type) +14
私のウェブアプリがIIS 6を実行しているWindows Server 2003上でネットワークサービスのユーザーとして実行されていますネットワークサービスユーザーにレジストリへのアクセスを許可するために必要なことはありますか?
ASP.NET MVCアプリケーションで使用するEventLogインスタンスを作成するより良い方法はありますか?私が参照する必要があるフレームワークによってすでに作成されているものはありますか? MSDNから
ログに権限を割り当てる方法を参照してください。http://stackoverflow.com/questions/1823433/eventlog-permission-failing-in-asp-net-on-win7/35086503#35086503 –