13 messaggi dal 06 dicembre 2006
Ciao a tutti,
purtroppo non sono molto pratico riguardo la personalizzazione del file web.config.

Ho necessità di attivare il debug degli errori presenti nel codice ASP.

Questo è il codice che ho scritto scopiazzando qua e là il codice:
<configuration>
<system.web>
   <customErrors mode="On" defaultRedirect="/index.asp">
     <error statusCode="404" redirect="/errore.asp" />
   </customErrors>
   <compilation debug="true"/>
</system.web>

<system.webServer>
  <httpErrors errorMode="Custom">
     <remove statusCode="404" subStatusCode="-1" />
     <error statusCode="404" prefixLanguageFilePath="" path="/errore.asp" responseMode="ExecuteURL" />
  </httpErrors>
</system.webServer>
</configuration>



La gestione dell'errore 404 funziona bene.
L'implementazione della riga <compilation debug="true"/> invece non ha avuto alcun effetto e continuo a visualizzare l'errore generico 500.

Io vorrei visualizzare l'errore che identifica la riga di codice errata.

Potete aiutarmi?
161 messaggi dal 07 settembre 2009
Devi mettere
<customErrors mode="Off"></customErrors>

Quello che hai scritto tu in pratica gestisce l'errore 404 effettuando il redirect alla pagina errore.asp, e nel caso di tutti gli altri errori ritorna alla pagina index.asp, sostituendo mode="On" con "Off" indichi che non vuoi le pagine customizzate di errore, mostrando così gli errori.

Davide
13 messaggi dal 06 dicembre 2006
Ciao Davide,
ho provato a sostituire la riga
<customErrors mode="On" defaultRedirect="/index.asp">

con quella da te suggerita
<customErrors mode="Off"></customErrors>


ma in questo modo quando si verifica l'errore 404 invece di reindirizzare l'utente alla pagina "errore.asp" mi compare l'errore:

HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.


Ho sbagliato qualcosa?
Grazie in anticipo
161 messaggi dal 07 settembre 2009
Innanzitutto devi modificare tutto
<customErrors mode="On" defaultRedirect="/index.asp">
     <error statusCode="404" redirect="/errore.asp" />
   </customErrors>

altrimenti ti ritrovi con un tag chiuso 2 volte e aperto 1.


Inoltre con questa modifica non hai più il reindirizzamento alla pagina errore.asp (come è giusto che sia).

Infatti la visualizzazione degli errori con customErrors mode="Off" si usa solo in fase di realizzazione del sito, così da poter vedere i dettagli degli errori che si creano.

Poi però va ripristinato il codice che avevi messo per poter gestire gli errori generici e il 404, così da non dar modo agli utenti di vedere il dettaglio degli errori (che non è mai carino e potrebbe mostrare parti di codice importante, come le password di un database, qualora l'errore si presentasse in una riga vicina).


Davide
1.509 messaggi dal 27 dicembre 2005
doppiomango ha scritto:
Innanzitutto devi modificare tutto
<customErrors mode="On" defaultRedirect="/index.asp">
     <error statusCode="404" redirect="/errore.asp" />
   </customErrors>

altrimenti ti ritrovi con un tag chiuso 2 volte e aperto 1.


Inoltre con questa modifica non hai più il reindirizzamento alla pagina errore.asp (come è giusto che sia).

Infatti la visualizzazione degli errori con customErrors mode="Off" si usa solo in fase di realizzazione del sito, così da poter vedere i dettagli degli errori che si creano.

Poi però va ripristinato il codice che avevi messo per poter gestire gli errori generici e il 404, così da non dar modo agli utenti di vedere il dettaglio degli errori (che non è mai carino e potrebbe mostrare parti di codice importante, come le password di un database, qualora l'errore si presentasse in una riga vicina).


Davide



Ma le pagine di destinazione ricevono qualche parametro inerente l'errore ?
161 messaggi dal 07 settembre 2009
totti240282 ha scritto:

Ma le pagine di destinazione ricevono qualche parametro inerente l'errore ?


Non così, se si volesse usare sempre la pagina errore.asp per gestire tutti gli errori allora si dovrebbe scrivere una cosa simile
<error statusCode="404" redirect="/errore.asp?iderrore=404" />
<error statusCode="405" redirect="/errore.asp?iderrore=405" />
...
e in base alla querystring passata si visualizzerà un determinato messaggio di errore piuttosto che un'altro.

Altrimenti per ogni tipo di errore gestito si attribuisce una propria pagina, tipo
<error statusCode="404" redirect="/pagina_non_trovata.asp" />
<error statusCode="405" redirect="/non_so_che_errore_sia.asp" />
...
<error statusCode="xxx" redirect="/nome_errore_xxx.asp" />

mantenendo sempre il defaultRedirect, che solitamente punta ad una pagina di errore generica, per tutti quegli errori che non sono gestiti (è impossibile gestirli tutti).

Davide
1.509 messaggi dal 27 dicembre 2005
doppiomango ha scritto:
totti240282 ha scritto:

Ma le pagine di destinazione ricevono qualche parametro inerente l'errore ?


Non così, se si volesse usare sempre la pagina errore.asp per gestire tutti gli errori allora si dovrebbe scrivere una cosa simile
<error statusCode="404" redirect="/errore.asp?iderrore=404" />
<error statusCode="405" redirect="/errore.asp?iderrore=405" />
...
e in base alla querystring passata si visualizzerà un determinato messaggio di errore piuttosto che un'altro.

Altrimenti per ogni tipo di errore gestito si attribuisce una propria pagina, tipo
<error statusCode="404" redirect="/pagina_non_trovata.asp" />
<error statusCode="405" redirect="/non_so_che_errore_sia.asp" />
...
<error statusCode="xxx" redirect="/nome_errore_xxx.asp" />

mantenendo sempre il defaultRedirect, che solitamente punta ad una pagina di errore generica, per tutti quegli errori che non sono gestiti (è impossibile gestirli tutti).

Davide



A ok io pensavo che venivano anche passate le informazioni riguardanti l'eccezione.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.