Distriggerszione della risposta agli errori del server IIS 7.5 per i codici di stato HTTP 5xx e 4xx

C'è un modo per impedire che IIS superi automaticamente l'output di un'app web che restituisce un codice di stato nel range 500 o 400?

Proprio come esempio, in ColdFusion posso creare la seguente pagina:

  • Su IIS, come posso patch la vulnerabilità SSL 3.0 POODLE (CVE-2014-3566)?
  • Come riavviare un singolo sito web in IIS7 + utilizzando il command?
  • PHP 5.2.11: Imansible caricare le lamentele della libreria dynamic
  • Interrompere definitivamente i siti IIS con PowerShell
  • Exchange 2013 ECP non è in grado di accedere
  • Sophos accede a un server web dal web
  • <cfheader statuscode="500" statustext="Error"> Sorry, an error occurred. 

    Il comportmento dovrebbe essere che vedo una pagina che dice "Mi dispiace, si è verificato un errore". e vedere nelle intestazioni che il codice di stato è 500.

    Invece, vedo:

     Server Error 500 - Internal server error. There is a problem with the resource you are looking for, and it cannot be displayed. 

    Nel bel design dello IIS.

    Ho provato a cancellare la pagina di stato personalizzato 500 ma che ha semplicemente provocato:

     The page cannot be displayed because an internal server error has occurred. 

    Senza nessuno degli stili piacevoli.

    Sembra che succeda con qualsiasi pagina che restituisca un codice che non sia nella gamma 200 o 300.

  • nginx: la direttiva error_page viene ignorata in silenzio
  • Cattura errori verso il basso verso l'alto (502) e visualizzare la pagina di errore personalizzata
  • Apache: richiesta insicura inviata per proteggere la port ... desidera redirect
  • nginx non servirà una pagina di errore in una sottodirectory della radice del documento
  • Visualizzazione di pagine di errore personalizzate su diversi VirtualHost in Apache
  • 3 Solutions collect form web for “Distriggerszione della risposta agli errori del server IIS 7.5 per i codici di stato HTTP 5xx e 4xx”

    A questo è stato risposto in un'altra domanda: IIS7 sbarca il mio errore di ColdFusion Error

    Sembra che la soluzione cambia la configuration in modo che IIS ignori l'errore e lo consente di passare, quindi l'impostazione

      <httpErrors existingResponse="PassThrough" /> 

    Quindi la soluzione è cambiare il comportmento di IIS, che è fortunato, perché richiedere a tutti i server di applicazioni web esistenti di cambiare il loro comportmento sarebbe davvero stupido.

    Aggiornare

    Vedere la mia risposta aggiornata in un'altra domanda simile per scoprire perché e come non esiste una risposta affidabile a questo problema .

    C'è apparentemente un modo per farlo utilizzando Response.TrySkipIisCustomErrors. L'esempio riportto di seguito è da una pagina aspx, ma dovrebbe essere adattabile al tuo caso d'uso.

    Questo seguente contenuto web è troppo ampio per duplicare qui.

    http://www.west-wind.com/weblog/posts/2009/Apr/29/IIS-7-Error-Pages-taking-over-500-Errors

    Ecco cosa funziona sicuramente: 1. Aprire le pagine di errore per il sito web o l'applicazione 2. Fare clic su Modifica impostazioni delle funzioni nelle azioni a destra 3. Selezionare gli errori dettagliati e salvare

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.