Question

Permettez-moi d'abord d'expliquer que je suis sur une solution hébergée, et je ne peux pas faire grand-chose en matière de configuration et de paramètres pour IIS 6.

J'ai MVC2 travaillant dans une certaine mesure, j'utilise le Code global.asax suivant:

    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 = "" }
        );
    }

Dans le premier itinéraire, j'ai dû spécifier {contrôleur} .aspx, en raison de IIS 6 qui ne peut pas exécuter du code non ASPX (ou quelque chose comme ça, pas vraiment sûr).

Ce qui est bien, ce qui suit fonctionne: hxxp: //mysite.com/home.aspx, hxxp: //mysite.com/projects.aspx, hxxp: //mysite.com/contact.aspx

qui sont tous des contrôleurs et je peux également exécuter leurs actions respectées.

Le problème est que je ne peux pas faire une URL vide correctement (c'est-à-dire hxxp: //mysite.com/), il me donne une erreur "répertorié rénigée".

La question que j'ai, est avec un fichier default.aspx situé sur root (qui exécute), puis-je charger le contrôleur d'accueil sans utiliser une réponse simple.redirect?

Merci, Matthew

Était-ce utile?

La solution

Le fait que vous obteniez "la liste des répertoires refusée" signifie que le FileTr Isapi ne correspond pas à travailler avec MVC.

Autres conseils

Le fait que vous obtenez "la liste des répertoires refusée" signifie que vous n'avez pas de document par défaut et que le serveur essaie donc d'afficher une liste de fichiers dans le dossier racine.

Mettez à jour le document par défaut en quelque chose comme "Default.aspx". Votre fournisseur d'hébergement devrait avoir une option pour cela. C'est très courant.

Vous pouvez désactiver ce comportement sur IIS6 et IIS7

// Disable IIS looking at physical files and directories
RouteTable.Routes.RouteExistingFiles = true;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top