Mam bibliotekę, którą utworzyłem z pewną logiką biznesową, która obejmuje zapis do instancji System.Diagnostics.EventLog
. Biblioteka jest zwykle wywoływana z aplikacji Windows Service, ale teraz próbuję wywołać te same funkcje biblioteki z mojej aplikacji ASP.NET MVC.Wyjątek zabezpieczeń podczas zapisywania do Dziennika zdarzeń z aplikacji ASP.NET MVC
Próbowałem ten kod w moim kontrolerze, aby utworzyć instancję EventLog, którą przekazuję do metody, która musi zapisać w dzienniku.
Dim log = New EventLog("Application", My.Computer.Name, "MyMVCApp")
następujący błąd jest generowany, gdy kod w metodzie biblioteki próbuje pisać 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 jest uruchomiona jako użytkownik usługi sieciowej w systemie Windows Server 2003 z usługami IIS 6 Czy jest coś, co muszę zrobić, aby umożliwić użytkownikom usługi sieciowej dostęp do rejestru?
Czy istnieje lepszy sposób utworzenia instancji EventLog do użycia w aplikacji ASP.NET MVC? Czy istnieje już stworzony przez ramy, które po prostu muszę odwołać?
Zobacz, jak przypisać uprawnienia do dziennika: http://stackoverflow.com/questions/1823433/eventlog-permission-failing-in-asp-net-on-on-win-/35086503#35086503 –