Wyjątek bezpieczeństwa podczas pisania do EventLog z aplikacji ASP.NET MVC
Mam bibliotekę, którą stworzyłem z pewną logiką biznesową, która obejmuje pisanie do aSystem.Diagnostics.EventLog
instancja. Biblioteka jest zwykle wywoływana z aplikacji usługi Windows, ale teraz próbuję wywołać te same funkcje biblioteki z mojej aplikacji ASP.NET MVC.
Próbowałem tego kodu wewnątrz mojego kontrolera, aby utworzyć instancję EventLog, którą przekazuję do metody, która musi zapisywać do dziennika.
Dim log = New EventLog("Application", My.Computer.Name, "MyMVCApp")
Następujący błąd jest generowany, gdy kod w metodzie biblioteki próbuje zapisać do dziennika:
[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
Moja aplikacja internetowa działa jako użytkownik usługi sieciowej w systemie Windows Server 2003 z uruchomionymi usługami IIS 6. Czy jest coś, co muszę zrobić, aby umożliwić użytkownikowi usługi sieciowej dostęp do rejestru?
Czy istnieje lepszy sposób na utworzenie instancji EventLog do użycia w aplikacji ASP.NET MVC? Czy istnieje już coś stworzonego przez ramy, do których muszę się odwołać?