Hace unos días con Diego nos dimos cuenta que el sitio donde alojamos nuestro blog empresarial sobre IIS7 algunos enlaces no estaban funcionando. Esos enlaces tenían en común mismo mensaje de error que detallo mas adelante el post…algunos enlaces eran por imágenes especificas (como arma la url el CS=Community Server) y por algo que necesitábamos la URL del RSS de un tag (etiqueta) especifico con espacios.
La solución al problema (que es una limitación por razones de seguridad) no muy rebuscada, ya que el mismo IIS7 nos la brinda; pero quiero aclarar que es mejor realizarlo en el archivo de configuración del sitio (aplicación web) donde lo necesitamos para que nuestro IIS7 siga con este “bloqueo”
PD: Vuelvo a escribir un titulo largo para el post… mmm! algo me esta sucediendo. No tengo capacidad de resumen? tal vez… o quiero que sea mas “friendly a los buscadores” 😉
Vamos al tema…
Problema
Mas que un problema era una limitación por razones de seguridad
También teníamos problemas con los RSS de los tags que tenían espacios en blanco
![]()
Causa.
(by Microsoft Support)
«(…)La solicitud HTTP en el servidor Web contiene una secuencia de escape dobles. Sin embargo, la característica filtrado de solicitudes está configurada para que el servidor Web deniega secuencias de escape dobles.(…)
Mensaje de error:
HTTP Error 404.11 – Not Found
The request filtering module is configured to deny a request that contains a double escape sequence.
La solución viene dada directamente por el IIS7 😉
Si estamos en el servidor web podremos ver un detalle mas fino del problema y su solución
Things you can try: Verify the configuration/system.webServer/security/requestFiltering@allowDoubleEscaping setting in the applicationhost.config or web.config file.
Entonces para no estar manipulando el archivo del servidor applicationHost.config o el web.config de nuestra aplicación web
Solución con script
Ejecutando:
%windir%system32inetsrvappcmd set config «Default Web Site» -section:system.webServer/security/requestfiltering – allowDoubleEscaping=»true»NOTA: No utilice este comando AppCmd pero nos podemos dar cuenta que donde dice “Default Web Site” es el nombre de nuestro website.
MAS INFO:
– IIS 7.0: Start Appcmd.exe
– Getting Started with AppCmd.exe
– Most Important AppCmd Commands
– Cómo utilizar la herramienta de línea de comandos de appcmd.exe para habilitar y configurar el registro de HTTP y otras características de Internet Information Services 7.0
Solución manual (manipulando archivos .config)
Aquí manipulando archivo applicationHost.config o el web.config de tu aplicación en particular. Lo cual esto ultimo solo influye en el sitio (aplicación) que necesitamos
Entonces mi recomendación: hazlo en el web.config de tu app.
Enlaces
- (ES) Mensaje de error cuando visita un sitio Web que está alojado en IIS 7.0: «HTTP error 404.11-URL_DOUBLE_ESCAPED»
(EN) Error message when you visit a Web site that is hosted on IIS 7.0: «HTTP Error 404.11 – URL_DOUBLE_ESCAPED»
http://support.microsoft.com/kb/942076/ - Sobre AppCmd
- Configuring IIS7 for Community Server
http://docswiki.communityserver.com/wikis/cs20085docs/configuring-iis7-for-community-server.aspx
Muchas Gracias, ha quedado funcionanado sin problemas.