asp.net - unwanted - En IIS7.5, qué módulo elimina el cuerpo de una Solicitud incorrecta 400
remove server header apache (2)
Si alterar el web.config no es una opción, a continuación puede ayudar:
Response.TrySkipIisCustomErrors = true;
He escrito el código ASP.NET (4.0) que establece el Response.StatusCode en 400 si los datos publicados en el servidor son válidos.
Coloco información útil en el cuerpo de la respuesta en el formato que la solicitud acepta que el encabezado solicita. por ejemplo, un mensaje html que dice "El campo de fecha es obligatorio ...".
En IIS7 (7.5.7600) en Windows 7, obtengo la respuesta html correcta al navegador.
En IIS7 (7.5.6000) en Windows 2008 no recupero el cuerpo html, sino solo un cuerpo de texto con "Solicitud incorrecta" como contenido.
Alguien me puede indicar cómo cambio la configuración del servidor 2008 para devolver el cuerpo.
¿O hay una diferencia entre estas versiones de IIS?
Tal vez un módulo en el Machine.config?
Por ejemplo, sé (y he tenido que solucionar) que el módulo FormsAuthentication cambia de 401 a 302 incluso si no desea esto. Puede haber un módulo que detenga el contenido de un 400 que se envía.
TIA.
Solución: edité la sección web.config system.webServer y configuré el atributo httpErrors existingResponse en "PassThrough" y voilá arreglado.
es decir:
<system.webServer>
...
<httpErrors existingResponse="PassThrough"></httpErrors>
...
</system.webServer>
Bueno 2 cosas me hicieron pensar en este tema:
1. el comportamiento clásico de CustomErrors porque estaba comparando localhost con un servidor remoto
2. El primero no explicaría cómo algunos de mis otros ''errores'' de autenticación se estaban recuperando intactos.
Busqué y encontré este artículo en IIS7: Cómo usar errores detallados de HTTP en IIS 7.0
Tal vez no correspondía completamente a lo que encontré al editar el web.config debido a que utilizaba IIS7.5, pero era suficiente para meterme en el vecindario correcto.
** También tenga en cuenta que con IIS 10 ahora compatible con HTTP2, las Descripciones de estado que contienen texto ya no son compatibles cuando se solicita una actualización a HTTP2, por lo que si responde con 400 (Solicitud incorrecta), esto se eliminará solo con el número 400. " HTTP / 2 no define una forma de llevar la versión o la razón de la razón que se incluye en una línea de estado HTTP / 1.1 " .