2012-11-06 9 views
17

Ho un problema grande e importante con Web.Config, ho bisogno di vedere l'errore della mia pagina e risolverlo in forma web asp.net e web config, ma quando si è verificato un errore, I vedere un altro errore e vedo questo messaggio: modalitàWeb.config Modalità errori personalizzati Conflitto

customErrors Off o On o RemoteOnly,

ho impostato questa proprietà Off, ma non mostrano di errore e dire ancora una volta si prega di impostare l'attributo di Sul CustomError.

enter image description here

enter image description here

quando il modo ho impostato su On, dire per favore impostare la modalità customErrors di nuovo su ON.

enter image description here

enter image description here

+0

errore personalizzato su on significa che stai creando la tua pagina per errore. Come il file 404 non è stato trovato ecc. Quando lo si imposta su off, viene mostrato l'errore a tutti. E se è remoto solo allora dalla stessa macchina si vede solo l'errore –

+1

Stai gettando il tuo errore. O hai scritto qualcosa nel tuo metodo globale Application_Error? –

+0

Grazie per il commento, lo so ma voglio vedere l'errore per il debug, e non mostrare l'errore –

risposta

13

In caso di problemi con la configurazione, assicurarsi che le impostazioni di non vengano sovrascritte.

In questo caso, il server potrebbe disporre di una configurazione <deployment retail="true" /> che sovrascrive le impostazioni dell'applicazione e disattiva l'output di traccia, gli errori personalizzati e le funzionalità di debug.

Modificare il valore "false"

<deployment retail="false" /> 

MSDN Link

-1

Impostare la modalità su On, salvare il web.config quindi aggiornare o riavviare IIS e assicurarsi che la modalità è ancora impostato su On dopo salvato. Individuare di nuovo, dovrebbe mostrare l'errore ...

+0

sfortunatamente, non funziona correttamente –

+3

On non mostrerà mai l'errore. Sfortunatamente 'off' sarà – Kenneth

3

Assicurati di nido il tag customErrors da qualche parte dentro il tag <system.web> in questo modo:

<system.web> 
<customErrors mode="Off" /> 
</system.web> 

Dalla tua descrizione è già probabilmente è stato messo lì da tu o automaticamente generato in un altro modo. Prova anche a Attivare e riavviare il pool di applicazioni. Puoi farlo semplicemente modificando il file web.config aggiungendo un ritorno alla rottura o anche solo premendo la barra spaziatrice, purché tu abbia apportato una modifica. Ora ricaricalo assicurandosi che questa sia la tua seconda volta con la modalità CustomErrors impostata su On. Speriamo che ora puoi visualizzare la tua pagina di errore personalizzata.

Se si verificano ancora problemi e si ha accesso al sito Web da Gestione IIS, provare a modificare le pagine di errore .NET nella vista Funzionalità. Ciò farà anche la stessa cosa, fornendo la tua pagina di errore personalizzata nella directory corretta per il file web.config per accedere.

+0

sfortunatamente non è stato funzionato –

1

Volevo solo commentare qui, ma io non ho abbastanza punti per commentare, Possiamo vedere il reale, pagina che produce l'errore e vedi l'intero web.config? è possibile sfocare le stringhe di connessione e in modo tale da non fornire alcuna password.

Ma con quello che vedo,

penso da quello che stai dicendo che si sta utilizzando IIS espresso il debug sulla macchina locale. Avrei fatto IIS Express o ctrl + F5 nella pagina per vedere se il sito non è stato appena memorizzato nella cache.

impostando gli errori personalizzati su Off mostrerà il messaggio di debug - NOTA la "O" in Off deve essere in maiuscolo con lettere minuscole delle f. sembra che tu abbia questo, ma vale la pena menzionare

Errori personalizzati Off - Specifica che gli errori personalizzati sono disabilitati. Ciò consente la visualizzazione di errori dettagliati.

1

Non l'ho mai visto dire impostato su Sì. L'ho visto dire di mettere in ordine i customeErrors che ti daranno errori dettagliati. Impostalo su off e poi aggiungi il messaggio di errore che vedi a questo post. Sei sicuro di non ricevere un messaggio diverso come un errore 404?

3

per mostrare l'errore per il debug e non mostrare una pagina di errore personalizzata che non è necessario un defaultRedirect e semplicemente avere questo dovrebbe poi uscita le informazioni di debug/eccezione:

<system.web> 
    <customErrors mode="On" /> 
</system.web> 

NOTA: Assicurarsi che On inizia con una maiuscola O. Modificando il file web.config, questo dovrebbe (di default) riciclare il pool di app ed essere prelevato immediatamente.

3

Ecco un esempio di codice su come è possibile visualizzare le eccezioni sulla pagina personalizzata.

Innanzitutto creare Default.aspx con il tasto:

<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Throw Error" /> 

Add seguente codice per l'evento di scatto del tasto:

protected void Button1_Click(object sender, EventArgs e) 
    { 
     throw new Exception("Sample Exception on my Page"); 
    } 

In secondo luogo creare ErrorPage.aspx con etichetta:

<asp:Label ID="Label1" runat="server" Text=""></asp:Label> 

E codice per pagina di errore:

protected void Page_Load(object sender, EventArgs e) 
    { 
     Exception ex = Server.GetLastError(); 
     if (ex != null && ex.InnerException != null) 
     { 
      Label1.Text = string.Format("An error occured: {0}", ex.InnerException.Message); 
     } 
    } 

E infine luogo a seguito di configurazione nel file web.config:

<system.web> 
     <customErrors mode="On" defaultRedirect="~/ErrorPage.aspx" redirectMode="ResponseRewrite" /> 
    </system.web> 

Compilare e iniziamo con Default.aspx. Fai clic sul tuo pulsante e l'errore verrà visualizzato sulla tua pagina personalizzata.

Felice codifica!

1

Da quello che posso vedere, non si dispone del <customErrors mode="Off" /> come il primo nodo nel nodo <system.web>.

Se dovessi indovinare, hai il nodo CustomErrors all'interno di un nodo <compilation targetFramework="x.x">.

Probabilmente avere l'ApplicationPool impostato su un'altra versione del framework .NET che l'applicazione è scritta in. Assicurarsi che il nodo <customErrors mode="Off" /> è la prima all'interno del nodo <system.web>, allora sarà molto probabilmente vi darà l'errormessage dettagliata.

1

rimuovere questa linea funziona per me!

<customError /> 
+0

sfortunatamente, non funziona correttamente –

1

Molte società di hosting in realtà sovrascrivono le impostazioni dal proprio file web.config da loro. In genere è possibile impostare questi attributi concreti nella dashboard dell'host Web per il sito Web.

Se ci dici il web hosting concreto che stai utilizzando, dovremmo essere in grado di assistere meglio con passi concreti.

4

In primo luogo, è possibile impostare la modalità CustomErrors da "RemoteOnly" a "off" <customErrors mode="Off"></customErrors>

In secondo luogo, è possibile controllare i global.asax.maybe si crea Response.Redirect come stessi defaultRedirect in CustomError. è possibile controllare più dettagli qui ASP.NET customErrors with mode=remoteOnly and global.asax handling exceptions

e l'ultimo, forse si crea due system.web nel proprio webconfig. Dovresti averne uno solo nel tuo file di configurazione. Per favore controlla di nuovo il tuo webconfig. e non dimenticare <compilation debug="true"/>

Problemi correlati