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.
Respostas:
A adição de uma barra final no caminho (por exemplo, path = "/ error-page /") interromperá o acréscimo do código de erro e do URL; observe que ele manterá o URL com falha original, por exemplo
fonte
Problema semelhante há muito tempo, o sistema em questão usa páginas de erro estáticas por causa disso.
Você pode definir isso no defaultResponseMode para o arquivo que servirá de volta uma única página estática.
Esquema de configurações do IIS do elemento httpErrors
Há também um problema semelhante aqui
fonte