2011-10-12 20 views
9

Cuando tengo mis errores personalizados discapacitados, Elmah está tomando todas las excepciones que se producen y el registro de ellas en mi base de datos y correo electrónico a mí.Elmah no está activando cuando los errores personalizados está activado

Sin embargo, el segundo cambio mi web.config para:

<customErrors mode="RemoteOnly" defaultRedirect="~/Home/Error"> 
</customErrors> 

Elmah deja de funcionar. Ya no registra las excepciones en la base de datos ni nada, todo lo que veo es que se está ejecutando mi acción de error personalizada.

¿Cómo puedo tener mensajes de error y aún así tener ELMAH excepciones log? Actualmente no estoy haciendo ninguna otra excepción interceptando además de Elmah.

Respuesta

18

¡Lo descubrí!

La razón por la que esto ocurría era porque tenía filters.Add(new HandleErrorAttribute()); en Global.asax. No sé por qué esto está ahí, pero eso fue lo que causó que fallara cuando se activaron los errores personalizados. Al eliminar esta línea, Elmah trabajó correctamente con errores personalizados.

También, contando ELMAH para iniciar la sesión "manipulados" errores también funciona, como se describe por this answer.

Sin embargo, no conozco las ramificaciones completas de ninguna de las opciones.

+0

Si usted tiene sólo una página de error "genérico" para todos los errores, no es necesario un HandleErrorAttribute añadió, por lo que puede quitarlo ya que tienes. –

+2

La eliminación del filtro estándar parece detener el redireccionamiento de error personalizado de web.config. Indicar a Elmah que registre los errores "manipulados" es definitivamente la mejor solución. – Owen

+0

@owen, ¿cómo le dices a ELMAH que registre las excepciones manejadas? –

Cuestiones relacionadas