He notado un comportamiento extraño en las páginas de error de IIS. Tengo esta configuración:
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="500" />
<error statusCode="500" responseMode="ExecuteURL" path="/error-page" />
</httpErrors>
A veces, cuando se produce un error de ASP.NET debido a que la cadena de consulta es demasiado larga, inmediatamente se produce el segundo error al intentar ejecutar la URL de la página de error. He seguido el problema al hecho de que IIS agrega la URL original a la URL de la página de error 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 es un gran problema. Si la url original falla por tener una cadena de consulta demasiado larga, entonces la página de error con el material agregado también falla porque tiene una cadena de consulta que es aún más larga.
Creo que este es el error más tonto en IIS. ¿Alguien sabe si hubo algún parche de service pack para eso? En el peor de los casos, si ya no se ha solucionado nada, ¿hay alguna forma de deshabilitar este comportamiento o algún truco para evitar que IIS agregue cosas no solicitadas a la página de error? Porque rompe todo el mecanismo de página de error personalizado.
Respuestas:
Agregar una barra inclinada final a la ruta (por ejemplo, ruta = "/ página de error /") detendrá el código de error y la URL que se agrega, tenga en cuenta que mantendrá la URL original que falla, por ejemplo
fuente
Tengo un problema similar hace mucho tiempo, el sistema en cuestión usa páginas de error estáticas por eso.
Puede establecerlo en el DefaultResponseMode en el archivo que servirá una sola página estática.
Esquema de configuración de httpErrors Element IIS
También hay un problema similar aquí
fuente