2012-09-22 67 views
6

Tengo un error de registro del sitio usando Elmah.SqlErrorLog. Mi objetivo de tener otro sitio contiene los controladores que sirven las páginas que normalmente vería en localhost/elmah.axd. La razón para esto es que el sitio que registra los errores utiliza la autenticación de formularios, mientras que yo quiero restringir quién puede ver los registros mediante la autenticación de Windows.Nombre de aplicación ELMAH: mostrar excepciones registradas por otro sitio

El sitio que realiza el registro se está ejecutando en el puerto 80, y el sitio para mostrar los registros está en el puerto 8008. Al principio, no pude ver las excepciones desde el sitio de registro. Luego encontré esta respuesta, que explica que puede establecer el nombre de aplicación para su error. Registro: Separate viewer application for ELMAH's log

Miré en la tabla que ELMAH inicia sesión y descubrí que antes de intentar separar el registro/visualización en dos sitios diferentes, ha estado registrando "/ LM/W3SVC/3/ROOT" en la columna de Aplicación.

Después de especificar applicationName = "/ LM/W3SVC/3/ROOT", ¡funcionó! Desafortunadamente, este valor varía de máquina a máquina, lo que no funcionará bien cuando la caja de desarrollo del siguiente tipo tenga un nombre de aplicación de "/ LM/W3SVC/10/ROOT". De acuerdo con esto, esa cadena tiene que ver con el espacio de nombres de la máquina local: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/44a57859-8fbb-4238-a7b5-f10c34cf8fe8.mspx?mfr=true

¿Cómo puedo obtener el sitio en el puerto 8008 que permite ver los registros para mostrar las excepciones registradas desde el sitio en el puerto 80?

Respuesta

10

Una vez que haya establecido el nombre de la aplicación explícitamente, este es el nombre que debería usar cuando registre la excepción en la base de datos.

Si establece applicationName = "Foo" en la configuración para ambos sitios, las nuevas excepciones registradas en el sitio en el puerto 80 debe ser visible en el sitio en el puerto 8008

Si usted necesita para hacer los viejos errores visibles que se registraron antes de este cambio, se podría actualizar el campo de aplicación en la tabla ELMAH_Error ser 'Foo', así

EDITAR

el valor applicationName se establece como un atributo en el elemento de registro de errores en el web.config

<elmah> 
     <security allowRemoteAccess="false" /> 
     <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="elmah-sqlserver" applicationName="Foo" /> 
    </elmah> 
+0

Supongo que quiere decir establecer el nombre de aplicación en el web.config. ¿A dónde debería ir esto? Los resultados de google que estoy viendo se relacionan con la sección . ¿Es esto correcto? http://weblogs.asp.net/scottgu/archive/2006/04/22/Always-set-the-_2200_applicationName_2200_-property-when-configuring-ASP.NET-2.0-Membership-and-other-Providers.aspx – BenWillkommen

+0

He actualizado la respuesta para incluir un ejemplo: debe tener una sección elmah en su web.config, el nombre de aplicación se establece en la sección errorLog dentro de ese –

Cuestiones relacionadas