URLs Limpias de MVC no funcionan en producción!

Hoy desplegué un sitio con ASP.NET MVC 2.0 en mi hosting, pero no funcionó bien. Me arrojó un 404 tratando de acceder https://warnov.com/MSBlog . Como puedes ver es una URL especial basada en el ruteo de MVC.

clip_image001

Para que este ruteo funcione, es necesario que IIS esté configurado para correr en Integrated Mode en mi aplicación. Yo creo que en vez de estar en Modo Integrado, ahora allá en mi proveedor de hosting, está en Modo Clásico.

Por qué sucede esto?

IIS 7.0 puede procesar las peticiones usando dos modos de proceso: integrado y clásico. El modo integrado provee más performance y características. El modo clásico está incluido para ofrecer compatibilidad hacia atrás.

Les escribí a los operadores del hosting, que me gustaría saber si es posible que me puedan ayudar ajustando el IIS para mi aplicación en modo Integrado (DefaultAppPool) para que pueda correr mi aplicación con MVC2.

Sé que esto podría acarrear problemas de compatibilidad con sitios viejos, pero lo bueno es que es un cambio a nivel de ApplicationPool, así que si mi aplicación no comparte el pool, será un cambio muy sencillo.

Por el contrario, si el AppPool es compartido, les sugería que crearan un AppPool aparte, especial para todos los que queramos poner aplicaciones de avanzada que aprovechen todo el poder del Framework.NET

Esperemos que me responden…

Al final, les adicioné unas instrucciones de IIS 7.0 para que las ejecuten en caso de que me puedan colaborar… estas instrucciones deberían servirte si estás pasando por el mismo problema:

1. Abrir el administrador de IIS

2. Seleccionar la aplicación en el menú de Conexiones

3. En el menú de acciones dar click en Basic Settings para abrir al diálogo “Edit Application”

4. Seleccionar el tipo de ApplicationPool requerido:

clip_image002

En IIS 7.5 (el de Windows 7) es mucho más fácil; les dejo un cortísimo video: