2010-07-19 24 views
5

ho errori personalizzati impostati nel file di configurazione web come segue:customErrors ASP.NET con mode = RemoteOnly e global.asax gestione delle eccezioni

<customErrors mode="RemoteOnly" defaultRedirect="GenericError.aspx" /> 

bene e dandy ... mi piace che la modalità = "RemoteOnly "facilita lo sviluppo ...

per le eccezioni non gestite, ho in global.asax:

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs) 
    Response.Redirect("GenericError.aspx") 
End Sub 

Tuttavia, le eccezioni non gestite stanno andando alla pagina di errore generico al posto delle s gialli informativi creen of death preferito dagli sviluppatori. Posso commentare il reindirizzamento in global.asax, ma poi ho bisogno di ricordarmi di cambiarlo per l'ambiente di produzione. C'è un modo in cui posso verificare in Application_Error se sono remoto o meno per determinare se reindirizzare?

risposta

3

Non è necessario il Response.Redirect nel Global.asax. Duplica il comportamento del tag <customErrors>. RemoteOnly darà agli utenti finali il messaggio di errore personalizzato e gli utenti locali la pagina di errore standard di asp.net. Se i tuoi sviluppatori usano un server web locale per lo sviluppo, hai entrambi in uno.

Un altro approccio è impostare <customErrors> su Off sui server di sviluppo e impostarlo su On nell'ambiente di produzione. Di solito ci sono molti elementi nel web.config che devono essere modificati, quindi non è più un disagio.

+0

Hai ragione, devo aver avuto una scoreggia cerebrale per non aver capito! – harrije

0

Non si dovrebbe nemmeno aver bisogno della linea in Application_Error se si dispone di defaultRedirect impostato su web.config.