Ich habe eine Bibliothek, die ich mit einigen Geschäftslogik erstellt, die das Schreiben in eine System.Diagnostics.EventLog
Instanz. Die Bibliothek wird normalerweise von einer Windows Service-Anwendung aufgerufen, aber jetzt versuche ich, die gleichen Bibliotheksfunktionen von meiner ASP.NET MVC-Anwendung aus aufzurufen.
Ich habe diesen Code in meinem Controller versucht, um die EventLog-Instanz zu erstellen, die ich an die Methode übergebe, die in das Protokoll schreiben muss.
Dim log = New EventLog("Application", My.Computer.Name, "MyMVCApp")
Der folgende Fehler wird erzeugt, wenn der Code innerhalb der Bibliotheksmethode versucht, in das Protokoll zu schreiben:
[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
Meine Webanwendung wird als Netzwerkdienstbenutzer auf Windows Server 2003 mit IIS 6 ausgeführt. Muss ich etwas tun, um dem Netzwerkdienstbenutzer Zugriff auf die Registrierung zu geben?
Gibt es eine bessere Möglichkeit, eine EventLog-Instanz für die Verwendung in einer ASP.NET MVC-Anwendung zu erstellen? Gibt es eine, die bereits vom Framework erstellt wurde und die ich nur referenzieren muss?