2010-01-26 10 views
18

Nota: He hecho horas de búsqueda de la respuesta y no he podido encontrar ninguna.ASP.NET MVC + IIS7 + FireFox: barra diagonal en la URL

Tengo una aplicación ASP.NET MVC (2.0) alojada en IIS7 (modo integrado).

Cuando la solicitud GET se realiza en /Toons/List - obtengo un redireccionamiento (302) a /Toons/List/ que se espera.

EL PROBLEMA
Pero cuando envío una solicitud de POST , dicen a /Toons/Add (no nota ninguna barra final) devuelve el servidor, de nuevo, vuelven a dirigir (302) a /Toons/Add/. En este punto, FireFox envía erróneamente GET solicitud a esa URL de redireccionamiento. Es decir. [GET] /Toons/Add/ en lugar de [POST] /Toons/Add/. Esto es incorrecto, pero el comportamiento conocido. Como no hay [GET] en /Toons/Add/ - Obtengo recursos no encontrados (404).

Alojo mi aplicación con webhost4life y no tengo acceso a IIS7, lo que limita el uso de la reescritura de URL y el uso de módulos (estoy trabajando con ellos para evitar esto). Pero incluso que, ¿ISAPI es la mejor manera de hacerlo? No sé lo suficiente como para sentirme bien haciéndolo de esta manera.

Esto llegó a ser un problema común, me sorprende que no pude encontrar una solución fácil para esto.

¿Existe alguna solución que no implique el uso del sufijo .aspx/.mvc y la reescritura de URL?
Fuera de esos dos, si es necesario, ¿cuál debería preferir?

¿Alguna idea/sugerencia?

EDITAR:
He leído http://www.hanselman.com/blog/ASPNETMVCAndTheNewIIS7RewriteModule.aspx, como dije, estoy tratando de encontrar una solución más fácil, una opción de "sólo trabajo".

EDITAR:
que tienen solución añadiendo visto con barra (/) para cada URL, de nuevo, no parece ser la solución más elegante.

+1

¿Puede mostrarnos las rutas y sus respectivos métodos de acción sobre este problema? –

+0

Estoy un poco confundido en cuanto a qué está causando un 302 a/Toons/List/when requesting/Toons/List. +1 para publicar las rutas o lo que está causando el 302 y por qué se espera. –

+0

problema desapareció en algún momento, no sé lo que estaba causando eso. –

Respuesta

0

¿Puedes decirle a IIS que devuelva un 307 en lugar de un 302?

0

¿Ha establecido el método de acción en el controlador para aceptar publicar HttpVerbs? También puede intentar configurar una ruta en Global.asax para/Toons/Add para que MVC no lo lea como/Controller/Method/

1

Debería utilizar la URL/ruta real al enlazar. Si no puede eliminar la barra oblicua de la ruta debido a una limitación del entorno de alojamiento o la versión 2.0 del marco MVC, debe incluir la barra final en sus URL.

Confiar en el servidor para redirigir cada URL aumentará el tiempo de procesamiento del servidor y el tiempo de carga de la página.

Cuestiones relacionadas