ASP.NET MVC ¿Cómo usar las rutas cuando la aplicación se publica como un subproyecto de un dominio?
-
03-07-2019 - |
Pregunta
Tengo una aplicación web que funciona perfectamente cuando se depura y prueba localmente. Sin embargo, cuando publico el sitio en un servidor de producciones, el enrutamiento está desordenado. Esto se debe a que se ejecuta como un subproyecto en el servidor de producciones.
Testing: http://localhost:xxx/ Production: http://remotehost/webapp/
¿Cómo debo configurar el enrutamiento?
Esta es mi configuración de enrutamiento actual (la mayoría predeterminada). El servidor muestra la acción predeterminada del Controlador cuando visito http: // remotehost / webapp / . Pero cuando código el controlador ( http: // remotehost / webapp / Project / no lo hace trabajo ...
Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
routes.MapRoute("ProjectsByCategory", "Project/Category/{id}", _
New With {.controller = "Project", .action = "ListByCategory", .id = ""}, _
New With {.id = "^[0-9]+"})
routes.MapRoute( _
"Default", _
"{controller}/{action}/{id}", _
New With {.controller = "Project", .action = "Index", .id = ""} _
)
End Sub
Solución
Me parece que podría estar relacionado con la publicación en iis 6. Hay un artículo aquí sobre eso.
Para mí, un problema similar se resolvió agregando un 'Mapa de aplicación de comodines':
- En IIS, haga clic con el botón derecho y elija Propiedades para el directorio virtual en cuestión
- elige la pestaña del directorio virtual
- elige la configuración
- haga clic en Insertar
- ingrese la ruta a aspnet-isapi.dll (normalmente c: \ windows \ microsoft.net \ framework \ v2.0.50727 \ aspnet_isapi.dll).
Otros consejos
Por cierto, el enrutamiento parece estar funcionando a nivel de aplicación. No es necesario molestar a su nombre de dominio o nombres de directorio superiores.