Tengo una biblioteca que creé con alguna lógica empresarial que incluye escribir en una instancia System.Diagnostics.EventLog
. Normalmente, se llama a la biblioteca desde una aplicación de servicio de Windows, pero ahora intento llamar a esas mismas funciones de biblioteca desde mi aplicación ASP.NET MVC.Excepción de seguridad al escribir en un EventLog desde una aplicación ASP.NET MVC
Probé este código dentro de mi controlador para crear la instancia EventLog que paso al método que debe escribir en el registro.
Dim log = New EventLog("Application", My.Computer.Name, "MyMVCApp")
se genera el siguiente error cuando el código en el método de biblioteca intenta escribir en el registro:
[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
Mi aplicación web se ejecuta como el usuario del servicio de red en Windows Server 2003 con IIS 6 ¿Hay algo que deba hacer para que el usuario del Servicio de Red pueda acceder al registro?
¿Existe alguna forma mejor de crear una instancia de EventLog para usar en una aplicación ASP.NET MVC? ¿Ya hay uno creado por el marco al que solo tengo que hacer referencia?
Vea cómo asignar permisos al registro: http://stackoverflow.com/questions/1823433/eventlog-permission-failing-in-asp-net-on-win7/35086503#35086503 –