base de datos de controlador de errores de SQL ELMAH no disponible- lo que ocurre con el registro?

StackOverflow https://stackoverflow.com/questions/758092

  •  09-09-2019
  •  | 
  •  

Pregunta

Estoy probando ELMAH y deliberadamente ha desactivado la conexión de base de datos para el registro de ELMAH en mi solicitud para ver lo que sucederá en la producción si la base de datos no está disponible.

Parece que ELMAH no pueda atrapar su propia errors- el archivo AXD no está disponible cuando falla el registro DATABSE SQL.

¿Cuál es el comportamiento previsto de ELMAH si la base de datos no está disponible?

¿Cómo puedo diagnosticar mis errores si esto ocurre?

¿Fue útil?

Solución

No es muy seguro acerca ELMAH pero el comportamiento esperado de tales marcos de registro es no lanzar ninguna excepción, si algo va mal con ellos. Es decir. Si la base de datos de ELMAH está abajo Me asumir que simplemente no registrará los errores de base de datos.

Como se ha sugerido que puede / debe usar alternativa sumideros -. Correo electrónico o archivo plano

Otros consejos

  

Parece que ELMAH no puede atrapar su propio   errores

ELMAH hace trampa de sus propios errores en cierta medida. Si el ErrorLogModule encuentra una excepción al intentar registrar el error entonces la excepción resultante de registro se envía al recurso de rastreo estándar .NET Framework. Ver línea 123 de 1,0 . fuentes Véase también el siguiente recorrido a través de la documentación de ASP.NET para conseguir el trazado de .NET Framework estándar de trabajo con ASP.NET rastreo:

Tutorial: La integración de ASP.NET rastreo con System.Diagnostics rastreo

  

el archivo AXD no está disponible cuando el   DATABSE registro de SQL falla.

Eso es correcto. conectividad de base de datos SQL Server debe ser funcional para ver los errores almacenados en una base de datos de SQL Server cuando se utiliza SqlErrorLog.

  

¿Cuál es el comportamiento previsto de ELMAH   Si la base de datos no está disponible?

Si, por ejemplo, la base de datos de SQL Server se ha reducido, un SqlException se producirá durante el registro. ELMAH enviará entonces el contenido del objeto SqlException al recurso de rastreo estándar de .NET Framework.

  

¿Cómo puedo diagnosticar mis errores si esto   ocurre?

La mejor opción aquí es permitir también el registro y e-mail de errores. Si la base de datos está abajo, es muy probable que la pasarela de correo es y seguirá recibiendo la notificación de errores. Los errores serán, en efecto, obtener registra de alguna buzón (es). Esto también tiene la ventaja añadida de que si la pasarela de correo es siempre hacia abajo y luego lo más probable es que la base de datos estará listo y errores conseguirá registrado allí. Si ambos están abajo, sin embargo, a continuación, tendrá que revisar seriamente su infraestructura de producción y, posiblemente, tomar medidas para controlar la salud de su sistema a través de medidas adicionales.

Siempre se puede utilizar la opción de archivo XML para registrar sus errores.

Creo que estás mezclando un poco contextos.

El comportamiento de ELMAH si la base de datos no está disponible es la de no registrar los errores de la base de datos. Si se produce una excepción en el servidor o si se eleva una excepción a través de un ErrorSignal, ELMAH va a permitir que pase a través de una excepción a cualquiera de una pantalla de color amarillo o una página de errores personalizados (la configuración.)

Desde la página Errors.axd sólo es accesible a aquellos que deberían estar viendo que (idealmente), que está bien para presentar ese error al usuario.

La conclusión es que si la base de datos de errores está abajo no se puede diagnosticar errores. Para nosotros, si ese fuera el caso, tendríamos problemas más grandes desde la base de datos de error se sienta con la base de datos de producción.


También me gustaría abogar contra el uso de XML para el registro de su fuente primaria de registro. servidor SQL se va a dar el mejor rendimiento sin tener que gestionar los archivos. Con el registro XML que no es el caso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top