У меня есть библиотека, которую я создал с помощью некоторой бизнес-логики, которая включает в себя запись в экземпляр System.Diagnostics.EventLog
. Обычно библиотека вызывается из приложения Windows Service, но теперь я пытаюсь вызвать те же функции библиотеки из своего приложения ASP.NET MVC.
Я пробовал этот код внутри моего контроллера, чтобы создать экземпляр 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
Мое веб-приложение работает как пользователь сетевой службы на Windows Server 2003 с запуском IIS 6. Есть ли что-то, что мне нужно сделать, чтобы предоставить пользователю Network Service доступ к реестру?
Есть ли лучший способ создать экземпляр EventLog для использования в приложении ASP.NET MVC? Есть ли кто-то, уже созданный каркасом, который мне просто нужно использовать?