2012-01-30 21 views
16

Ho appena distribuito un'applicazione ASP.NET MVC 3 al nostro server di gestione temporanea. Ogni volta che si verifica un errore, non riesco a ottenere le informazioni dettagliate sull'errore, cioè la "schermata gialla della morte". Invece, ricevo semplicemente un "Mi dispiace, si è verificato un errore durante l'elaborazione della richiesta". Messaggio.Impossibile ottenere informazioni dettagliate sull'errore nel sito Web ASP.NET MVC

mio web.config fa includono le customErrors off, cioè .:

<system.web> 
    <compilation debug="true" targetFramework="4.0"> 
    <assemblies> 
     ... 
    </assemblies> 
    </compilation> 
    <customErrors mode="off"/> 
</system.web> 

In questo caso, so esattamente quello che l'errore di fondo è. (Ho dimenticato di impostare i permessi su una procedura memorizzata.) Ma voglio davvero (ri) abilitare la gestione degli errori, così posso trovare questi bug velocemente. Ovviamente, lo rimuoverò una volta che saremo effettivamente in diretta per motivi di sicurezza.

Quali altre impostazioni sono presenti che potrebbero ignorare la gestione degli errori ASP.NET predefinita?

+0

possibile duplicato della [Modalità CustomErrors = "Off"] (http://stackoverflow.com/questions/101693/customerrors-mode-off) –

risposta

31
<customErrors mode="Off"/> 

Il "Off" devono essere capitalizzati in modo corretto.

Da "Editing ASP.NET Configuration Files":

maiuscole e minuscole

Perché i tag devono essere XML, i tag, subtag ben formati, e gli attributi sono case-sensitive. I nomi dei tag e gli attributi sono camel-cased, il che significa che il primo carattere di un nome è in minuscolo e la prima lettera di qualsiasi parola o parola successiva concatenata è maiuscola. Nella maggior parte dei casi, i valori degli attributi stringa sono caso Pascal, il che significa che il primo carattere è maiuscolo e la prima lettera di ogni parola o parola concatenata successiva è maiuscola. Le eccezioni sono vere e false, che sono sempre in minuscolo.

Ricordate bambini, si impara qualcosa di nuovo ogni giorno. Anche se quello che impari è zoppo.

+13

+1 per "Remember bambini, si impara qualcosa di nuovo ogni giorno. Anche se quello che impari è zoppo. " :) –

7

Si può avere il filtro globale HandleErrorAttribute nel file Global.asax.cs. Rimuovi quella linea.

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
     filters.Add(new HandleErrorAttribute()); 
    } 
0

controllo se il server utilizza lo stesso file di configurazione per il tuo sito (se il file di configurazione distribuito al sito dir è lo stesso)

2

Una migliore, soluzione a lungo termine potrebbe essere quella di aggiungere Elmah al progetto, aggiunge registrazione dettagliata per il tuo progetto web.

Tra cui:

  • registrazione di quasi tutte le eccezioni non gestite.
  • Una pagina Web per visualizzare in remoto l'intero registro delle eccezioni ricodificate.
  • Una pagina Web per visualizzare in remoto tutti i dettagli di ogni eccezione registrata, incluse le tracce dello stack colorato.
  • In molti casi, è possibile rivedere la schermata gialla originale della morte generata da ASP.NET per una determinata eccezione, anche se la modalità personalizzataErrors è stata disattivata.
  • Una notifica via e-mail di ogni errore nel momento in cui si verifica.
  • Un feed RSS degli ultimi 15 errori dal registro.
Problemi correlati