Para cualquier URL con un signo más (+) en la URL base (no la cadena de consulta), IIS7 e IIS7.5 (Windows Server 2008 y 2008 R2) no parecen reenviar la URL al controlador predeterminado en una aplicación ASP.NET . Comencé a notar el problema con un controlador HTTP personalizado *.html
pero tengo el mismo problema *.aspx
. IIS6 (Server 2003) no tiene problemas con estas mismas URL.
Para replicar el problema, en un sitio ASP.NET, creé un conjunto de archivos ASPX que hicieron una simple Response.Write con varios nombres:
- test_something.aspx
- test_some + thing.aspx
- test_some thing.aspx
El tercer archivo era una prueba para ver si IIS7 [.5] estaba tratando los símbolos más como espacios (como lo haría en la cadena de consulta); Esto no parece ser el caso. Con todos estos archivos en su lugar, golpear http://somehost/test_some+thing.aspx
o http://somehost/test_some%2bthing.aspx
funcionará bien en IIS6 pero 404 en IIS7 / IIS7.5 antes de llegar a cualquier controlador ASP.NET. ¿Hay alguna configuración en IIS7 / 7.5 que me falta para que "vea" un signo más en la URL sin perder la extensión final utilizada para determinar un controlador HTTP?
\+
?