IIS httpErrors ExecuteURL aggiunge strane string di query come 500; http: //mysite.com/failed-page all'URL di destinazione


8

Ho notato un comportamento strano nelle pagine di errore di IIS. Ho questa configurazione:

<httpErrors errorMode="Custom" existingResponse="Replace">
 <remove statusCode="500" />
  <error statusCode="500" responseMode="ExecuteURL" path="/error-page" />
</httpErrors>

A volte quando si verifica un errore ASP.NET a causa della lunghezza eccessiva della stringa di query, si verifica immediatamente il secondo errore durante il tentativo di eseguire l'URL della pagina di errore. Ho rintracciato il problema al fatto che IIS aggiunge l'URL originale all'URL della pagina di errore come:

Original: http://example.com/someurl?id=some_very_long_query_string_causing_security_exception
Error: /error-page?500;http://example.com/someurl?id=some_very_long_query_string_causing_security_exception

Questo è un grosso problema Se l'URL originale non riesce per avere una stringa di query troppo lunga, anche la pagina di errore con le cose aggiunte fallisce perché ha una stringa di query ancora più lunga!

Credo che questo sia il bug più stupido di IIS. Qualcuno sa se ci fosse qualche patch di service pack per questo? Nel peggiore dei casi, se ormai non è stato risolto nulla, esiste un modo per disabilitare questo comportamento o eventuali trucchi per impedire a IIS di aggiungere elementi non richiesti alla pagina di errore? Perché interrompe l'intero meccanismo della pagina di errore personalizzata.


Signore, ho affrontato lo stesso problema. L'hai risolto?
Denis,

1
+1 Ho fatto la stessa domanda su StackOverflow qui . Mi piacerebbe una risposta.
Muhammad Rehan Saeed,

Risposte:


1

L'aggiunta di una barra finale al percorso (ad es. Percorso = "/ pagina-errore /") interromperà l'aggiunta del codice di errore e dell'URL, si noti che manterrà l'URL di errore originale, ad es.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.