IIS httpErrors ExecuteURL agrega una cadena de consulta extraña como 500; http: //mysite.com/failed-page a la URL de destino

8

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.

conejito
fuente
Señor, me enfrenté al mismo problema. ¿Lo resolviste?
Denis
1
+1 He hecho la misma pregunta sobre StackOverflow aquí . Me encantaría una respuesta.
Muhammad Rehan Saeed

Respuestas:

1

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

mitchjhill
fuente