2013-11-24 14 views
12

Ho installato un nuovo server Windows 2012 R2 con IIS 8.5.Perché le pagine vuote vengono pubblicate con "200 OK" per errori asp.net in IIS 8.5 (Win 2012 R2)?

Abbiamo notato che quando si verifica un errore (ad esempio, il servizio Stato di ASP.NET non era in esecuzione) che invece di emettere una schermata di errore di codice di stato 500, la richiesta restituisce effettivamente una pagina completamente vuota (solo intestazioni - senza contenuto) . Ovviamente abbiamo bisogno di vedere gli errori e servire 200 OK per un errore potrebbe essere molto problematico per gli indicizzatori come Google ecc. O qualsiasi strumento di monitoraggio wesite (che non ci notificasse che il sito era offline).

Su altri server (IIS 7) viene visualizzata la "schermata di errore gialla" con un messaggio del tipo "Impossibile connettersi al server di stato" (o simile).

Cosa potrebbe esserci di sbagliato qui? C'è qualche impostazione per disabilitare globalmente tutti gli errori (ma sarebbe stupido se servisse anche il codice di stato 200) o qualcos'altro potrebbe essere d'intralcio?

L'unica altra cosa che potrebbe interferire è che ISAPI_Rewrite è installato sul server (ma questo di solito non causa questo problema).

Grazie!

+1

Controllare le impostazioni della pagina di errore, provare a disabilitare il modulo di riscrittura come test. –

+0

Provare a utilizzare lo strumento di traccia delle richieste non riuscito in IIS per ottenere maggiori dettagli su dove (in quale fase) si verifica il problema e su cosa è responsabile. – TonyCool

+0

Ho riscontrato un problema simile e l'ho risolto installando il modulo 'HTTP Redirection' che non era incluso nell'installazione predefinita – gordy

risposta

20

avuto un problema simile su Windows 8.

In Impostazioni di ricerca per "Turn funzionalità di Windows on o off".

Verificare che le seguenti funzioni sono attivate

"/ Internet Information Services/Servizi Web/Caratteristiche comuni HTTP/Errori HTTP". "/ Internet Information Services/Servizi Web/Funzionalità HTTP comuni/Contenuto statico".

+0

Per lo sviluppo di siti Web .net locali controllare anche "/ Internet Information Services/Servizi Web/Funzioni di sviluppo applicazioni /ASP.Net 3.5 "e"/Internet Information Services/Servizi Web/Funzionalità di sviluppo applicazioni/ASP.Net 4.5 " – Adam

+0

Lo stesso successo a me su Win10 dopo l'aggiornamento da 8.1. Grazie :) –

+0

l'antivirus influisce su questo problema? perché ho installato tutte le funzionalità menzionate, ma ottengo ancora questo errore 500-19 –

4

È necessario assicurarsi che Debug lato server non sia abilitato nel modulo ASP.

Gli errori del server ASP classico 500 vengono restituiti come 200. Viene effettuato un tentativo di aprire l'applicazione debug lato server, che quindi non può essere trovata e IIS restituisce successivamente una risposta di 200 e una pagina vuota.

3

Estrarre tutto il codice Global.asax mi ha aiutato a trovare la causa dell'errore.

Successivamente, IIS ha iniziato a restituire la pagina di errore come previsto. Quindi, dopo aver applicato la correzione, ho restituito il codice Global.asax.

Forse questo caso ti aiuta.

+0

Questo è un buon approccio per trovare l'errore nella gestione degli errori personalizzati. Se hai implementato questo. – DeadlyChambers

+0

Questo ha funzionato per me! –

+0

Perfetto .. questo mi ha permesso di rintracciare l'errore _actual_ –

3

Assicurarsi che non si stia chiamando Server.ClearError() in Application_Error di Global.asax.cs che ha finito per essere il mio problema.

+1

Questa è stata la causa per me, grazie per l'aiuto. – JJP

1

Ho riscontrato un problema simile durante la richiesta di Default.aspx (impostato come pagina predefinita nella directory). Il server ha restituito lo stato 200, ma il contenuto era vuoto.

In questo caso ha funzionato per passare dalla modalità di pipeline gestita del pool di applicazioni da integrata a classica.

Problemi correlati