2011-10-12 20 views
9

Quando ho i miei errori personalizzati disabilitati, Elmah sta prendendo tutte le eccezioni che si verificano e le registra nel mio database e mi invia per e-mail.Elmah non si attiva quando sono abilitati gli errori personalizzati

Tuttavia, il secondo cambio il mio web.config per:

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

Elmah smette di funzionare. Non registra più eccezioni al database o altro, tutto quello che vedo è l'azione di errore personalizzata che viene eseguita.

Come posso avere messaggi di errore personalizzati e avere ancora eccezioni di elmah log? Al momento non sto facendo alcuna altra eccezione che intercetta oltre a Elmah.

risposta

18

Capito!

Il motivo per cui si verificava era che avevo filters.Add(new HandleErrorAttribute()); in Global.asax. Non so perché questo è lì, ma questo è stato ciò che stava causando questo a fallire quando gli errori personalizzati sono stati abilitati. La rimozione di questa linea ha causato il corretto funzionamento di Elmah con errori personalizzati.

Inoltre, il comando di elmah per registrare gli errori "gestiti" funziona anche come descritto da this answer.

Non conosco veramente tutte le ramificazioni di entrambe le opzioni.

+0

Se si dispone di una sola pagina di errore "generica" ​​per tutti gli errori, non è necessario aggiungere un oggetto HandleErrorAttribute e pertanto è possibile rimuoverlo come si ha. –

+2

La rimozione del filtro standard sembra interrompere il reindirizzamento personalizzato di errore web.config. Dire a Elmah di registrare gli errori "gestiti" è sicuramente la soluzione migliore. – Owen

+0

@ howen come si dice a ELMAH di registrare le eccezioni gestite? –

Problemi correlati