2010-08-09 25 views
6

Ho un progetto MVC impostato con 3 aree. Nel progetto principale ho la gestione degli errori, ho impostato usando errori personalizzati nel web.config.Gestione errori area MVC

<customErrors mode="On" defaultRedirect="~/Error/HttpError"> 
    <error statusCode="404" redirect="~/Error/Http404" />  </customErrors> 

Ciò causa il reindirizzamento del sito a un controller di errore nella radice e quindi mostra la visualizzazione dell'errore.

Questo funziona correttamente nel sito principale, tuttavia quando lancio un'eccezione nel controller domestico di uno dei siti dell'area, viene visualizzato il messaggio seguente.

Errore di runtime Descrizione: Si è verificato un errore dell'applicazione sul server. Le attuali impostazioni di errore personalizzate per questa applicazione impediscono la visualizzazione dei dettagli dell'errore dell'applicazione.

Dettagli: per consentire la visualizzazione dei dettagli di questo specifico messaggio di errore sul server locale, creare un tag all'interno di un file di configurazione "web.config" che si trova nella directory principale dell'applicazione Web corrente. Questo tag dovrebbe quindi avere l'attributo "mode" impostato su "RemoteOnly". Per consentire la visualizzazione dei dettagli su macchine remote, impostare "mode" su "Off".

È possibile che la gestione degli errori nel sito radice non possa essere utilizzata nei siti dell'area?

Grazie

John.

risposta

1

L'area dispone del proprio web.config che potrebbe impostare le proprie opzioni di gestione degli errori? Puoi inserire un breakpoint in Application_OnError per vedere se si verifica un altro errore (ad esempio, un caricamento della pagina di errore, ad esempio se hai disattivato il buffering, non sarà in grado di eseguire il reindirizzamento)?

Si potrebbe anche provare ad aggiungere il qualcosa di simile per il web.config principale per vedere se fa alcuna differenza:

<location path="nameOfArea"> 
    <system.web> 
    <customErrors mode="On" defaultRedirect="~/Error/HttpError" /> 
    </system.web>  
</location>