2013-06-14 17 views
9

Ci sono many inquiries in giro per l'errore MVC ASP.Net "Spiacenti, si è verificato un errore durante l'elaborazione della richiesta". Sfortunatamente, non sono stato in grado di trovarne qualcuno che discuti effettivamente di ciò che sta realmente accadendo. Comprensibilmente si concentrano sull'errore sottostante piuttosto che sulla fonte e sulla causa immediata del messaggio. Di conseguenza queste soluzioni danno risposte molto diverse alla stessa domanda.Qual è la causa e l'origine diretta del "Mi dispiace, si è verificato un errore durante l'elaborazione della richiesta". Messaggio?

Ecco alcuni esempi:

In base ai dati di traccia stack in molte delle risposte che ho esaminato, sembra che questo possa essere attivato nella classe System.Web.Mvc.ControllerActionInvoke. In generale, sembra essere un risultato diretto di un errore non gestito nel metodo ActionResult in esecuzione.

Mi piacerebbe capire il termine "elaborazione della richiesta" nel messaggio. In base al modo in cui ho visto la visualizzazione dell'errore, sembra improbabile che ciò si riferisca alla richiesta HTTP. Forse qualcosa di più granulare nell'architettura MVC? Qualcuno può far luce su dove questo messaggio ha origine e perché?

risposta

12

La gestione degli errori predefinita di un'applicazione ASP.Net MVC predefinita reindirizza gli errori alla vista condivisa Error.aspx. Il testo del messaggio "Siamo spiacenti, si è verificato un errore durante l'elaborazione della richiesta" all'interno del file Error.aspx. Il messaggio non è generato da una classe .Net.

Il seguente domanda SO mi ha portato alla luce: ASP.NET MVC HandleError not working (customErrors is set to "On")

Per maggiori dettagli circa l'errore di fondo avete alcune opzioni.

  • Personalizzare la pagina Error.aspx predefinita per visualizzare i dettagli sull'errore sottostante.

  • Disattivare CustomErrors nel file web.config. Gli errori futuri dovrebbero visualizzare i dettagli di errore "schermo giallo" ASP.Net predefinito invece del messaggio "Mi dispiace, si è verificato un errore".

  • Gestire specificamente l'errore nel metodo ActionResult associato.

+0

Un semplice '@ {Html.RenderPartial (" ~/Views/Error/Error500.cshtml "); } 'poi ha mostrato la pagina di errore che avevo impostato accanto a error404. –

Problemi correlati