Pregunta

Primero permítanme explicar que estoy en una solución alojada, y no hay mucho que pueda hacer en formas de configuración y configuración para IIS 6.

Tengo MVC2 trabajando hasta un título, estoy usando el siguiente código global.asax:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default",
            "{controller}.aspx/{action}/{id}",
            new { action = "Index", id = "" }
        );

        routes.MapRoute(
            "Root",
            "",
            new { controller = "Default", action = "Index", id = "" }
        );
    }

En la primera ruta, tuve que especificar {controlador} .aspx, debido a que IIS 6 no podía ejecutar código no ASPX (o algo así, no estoy realmente seguro).

Lo cual está bien, lo siguiente funciona: hxxp: //mysite.com/home.aspx, hxxp: //mysite.com/projects.aspx, hxxp: //mysite.com/contact.aspx

que son todos los controladores y también puedo ejecutar sus acciones respetadas.

El problema es que no puedo hacer una URL vacía correctamente (es decir, hxxp: //mysite.com/), me da un error de "listado de directorio denegado".

La pregunta que tengo, es con un archivo predeterminado.aspx ubicado en root (que se ejecuta), ¿puedo cargar el controlador de inicio sin usar una respuesta simple. Redirect?

Gracias Matthew

¿Fue útil?

Solución

El hecho de que esté obteniendo "Listado de directorio denegado" significa que el Filetr ISAPI no coincide para trabajar con MVC.

Otros consejos

El hecho de que esté obteniendo "Listado de directorio denegado" significa que no tiene un documento predeterminado y, por lo tanto, el servidor está intentando mostrar una lista de archivos en la carpeta raíz.

Actualice el documento predeterminado a algo como "default.aspx". Su proveedor de alojamiento debe tener una opción para esto. Esto es muy común.

Puedes deshabilitar este comportamiento en IIS6 e IIS7

// Disable IIS looking at physical files and directories
RouteTable.Routes.RouteExistingFiles = true;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top