Voglio usare Application_Error con il mio progetto MVC, ma non riesco a farlo funzionare. Aggiungo il seguente al mio file Global.asax: (. La Sessione è solo per le prove Im che va utilizzare un database per errore di log, se ottengo questo al lavoro.)Come utilizzo Application_Error in ASP.NET MVC?
protected void Application_Error(object sender, EventArgs e)
{
Exception objErr = Server.GetLastError().GetBaseException();
Session["Test"] = "Message:" + objErr.Message.ToString();
}
poi cerco di lanciare un eccezione dal mio HomeController e dalla mia vista Home/Index, ma attiva solo Debug.
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
throw (new Exception());
return View();
}
Nel mio file Webconfig ho creato una pagina defaulterror ma non reindirizza alla vista:
<customErrors defaultRedirect="Home/Error">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
Ho un problema con la soluzione. CustomErrors reindirizza direttamente alla vista Home/Errori senza attivare il controller. Non sapevo cosa fosse possibile, ma quando ho messo un punto di debug nel metodo Error Action il debug non viene mai chiamato. La visualizzazione degli errori viene visualizzata sullo schermo, ma l'url è sempre uguale all'URL che ha attivato l'errore. Ad esempio, se faccio scattare un errore in/Home/Lavoro, otterrò la vista errore ma l'URL è ancora/Home/Lavoro – Poku
Ehi @blowdart: messaggio per gentile concessione di un nuovo utente che non può commentare: questa risposta è piatta sbagliato. Il problema è che chiamare Server.GetLastError() dalla classe controller non funziona se si utilizza web.config per reindirizzare a un'azione del controller predefinita. ASP avvia una nuova richiesta HTTP al controller degli errori, che cancella le variabili Server, perdendo le informazioni sulle eccezioni. –
risposta errata ..... ecco un buon articolo sul perché è necessario utilizzare entrambi http://www.prideparrot.com/blog/archive/2012/5/exception_handling_in_asp_net_mvc –