O IIS httpErrors ExecuteURL anexa uma string de consulta estranha como 500; http: //mysite.com/failed-page ao URL de destino

8

Eu notei um comportamento estranho nas páginas de erro do IIS. Eu tenho essa configuração:

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

Às vezes, quando ocorre um erro do ASP.NET devido ao fato de a string de consulta ser muito longa, imediatamente o segundo erro ocorre ao tentar executar o URL da página de erro. Rastreei o problema pelo fato de o IIS anexar o URL original ao URL da página de erro como:

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

Este é um problema enorme. Se o URL original falhar por ter uma string de consulta muito longa, a página de erro com o material anexado também falhará porque ela possui uma string de consulta ainda mais longa!

Eu acredito que este é o bug mais idiota do IIS. Alguém sabe se houve algum patch do service pack para isso? No pior cenário, se nada for resolvido até agora, existe uma maneira de desativar esse comportamento ou de algum truque para parar o IIS de anexar itens não solicitados à página de erro? Porque ele quebra todo o mecanismo de página de erro personalizado.

Coelho
fonte
Senhor, eu enfrentei o mesmo problema. Você resolveu isso?
Denis
1
+1 Fiz a mesma pergunta no StackOverflow aqui . Adoraria uma resposta.
Muhammad Rehan Saeed

Respostas: