2011-09-01 11 views
5

Tengo una aplicación que se suponía que debía aceptar caracteres inseguros de Salesforce. Son% 0A y% 0D (hasta ahora ...) y no están funcionando.IIS 7 Petición de respuesta incorrecta cuando% 0A existe en la dirección URL

He configurado allowDoubleEscaping a true, requestValidationMode a 2.0, requestPathInvalidCharacters a BLANK, relaxedUrlToFileSystemMapping a true y maxRequestLength a 1024.

No funcionó. Luego intenté configurar un error personalizado para 400 para redireccionar a la misma página sin pasar los datos que Salesforce estaba enviando. Tampoco funcionó.

Luego intenté hacer lo mismo a través de la sección Páginas de error de IIS 7 y todavía no funcionó.

Como puedo:

  1. obtener la aplicación para aceptar los caracteres?
  2. ¿O bien, obtener la aplicación/IIS para redirigir a la misma página para la entrada manual?

Todo esto en una aplicación ASP.NET MVC 3, pero dudo que importe porque es probable que IIS lo detenga incluso antes de que llame al tiempo de ejecución de ASP.NET.

Agradecería un poco de ayuda. ¡Gracias por adelantado!

+0

¿El error proviene de ASP.NET o IIS? Normalmente puede notar la diferencia, ASP.NET tiene YSOD (pantalla amarilla de la muerte), IIS 7 se ve ... diferente. – CodingGorilla

+0

IIS probablemente, es blanco y dice "Error HTTP 400 de solicitud incorrecta {HR}. La URL de solicitud no es válida". – Gup3rSuR4c

+0

@Alex ¿Alguna vez encontró una solución para esto? Estoy teniendo exactamente el mismo problema con% 0A y% 0D en las URL. – Geekman

Respuesta

1

Donde probablemente quiera mirar en el Administrador de IIS, haga clic en su nodo de servidor (o nodo de sitio web), y encuentre el icono Request Filtering. Vaya a la pestaña URL y aquí puede permitir URL específicas siempre, o cambiar la forma en que se maneja el filtrado de URL en general. Estoy seguro de que estas configuraciones también están disponibles en la sección del archivo web.config, pero no sé de antemano cuáles serían los elementos y atributos de configuración (estoy seguro de que podrías hacer una búsqueda y encontrarlos fácilmente).

Es posible que tenga que luchar más allá de ASP.NET después de arreglar esto también.

0

Quizás sea un poco tarde pero para mí funcionó cambiando las excepciones configuradas utilizando la configuración de registro AllowRestrictedChars (como se documenta en https://support.microsoft.com/en-us/kb/820129). El valor predeterminado es 0, lo cambié a 1. Si no es nulo, Http.sys acepta caracteres hexadecibles en las URL de solicitud que decodifican a U + 0000 - U + 001F y U + 007F - U + 009F.

Cuestiones relacionadas