2012-02-15 17 views
7

ho questo scenario:ASP.NET/web.config: customErrors reindirizzare solo su un 404

un utente arriva al mio sito e followes un link, wich doesnt esiste più, dovrebbe essere reindirizzato a un ErrorPage personalizzato . (che funziona)

Se un utente fa qualcosa, che genera un errore, dovrebbe vedere Stacktrace e la pagina di errore reale.

Questo è il mio web.config corrente:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.web> 
     <customErrors> 
      <error statusCode="404" redirect="/errors/404.htm" /> 
     </customErrors> 
     <compilation debug="true" strict="false" explicit="true" /> 
    </system.web> 
</configuration> 

con questa configurazione, un 404 verrà reindirizzato al sito giusto, ma un HTTP 500 sarà mostrato come segue:

Errore server nell'applicazione '/'

Descrizione: Si è verificato un errore dell'applicazione sul server. Le attuali impostazioni di errore personalizzate per questa applicazione impediscono che i dettagli dell'errore dell'applicazione vengano visualizzati in remoto (per motivi di sicurezza). Potrebbe, tuttavia, essere visualizzato dai browser in esecuzione sul computer server locale.

Dettagli: Per consentire la visualizzazione dei dettagli di questo messaggio di errore specifico su macchine remote, 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 "Off".

[...]

Ma in questo caso voglio mostrare lo stacktrace.

Come posso fare questo?

Nota: Siamo su Linux con un Mono < - FastCGI -> Costruzione Lighttpd.

risposta

0

Ray Van Halens La risposta è corretta, ma questo non era il problema reale.

Il motivo per cui non viene mostrato lo stacktrace è un errore in mono stesso. Non c'è altro modo quindi di scrivere una propria pagina di errore in cui lo stacktrace viene distribuito.

13

Nei seguenti voci web.config, una (404) condizione non trovato invierà un utente di PageNotFound.aspx

Utilizzare la modalità = "off" e tutti (utenti locali e remoti) vedrà dettagli dell'errore.

<customErrors mode="Off"> 
    <error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" /> 
</customErrors> 

Utilizzare la modalità = "RemoteOnly" e gli utenti locali vedranno pagine di errore dettagliati con una traccia dello stack e dettagli di compilazione. Gli utenti remoti possono essere presentati con la pagina GeneralError.aspx

<customErrors mode="RemoteOnly" defaultRedirect="~/errorPages/GeneralError.aspx"> 
    <error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" /> 
</customErrors> 
Problemi correlati