Mit ASP.NET MVC2 wird die leere Route nicht von IIS 6 weitergeleitet
-
26-09-2019 - |
Frage
Lassen Sie mich zunächst erklären, dass ich auf einer gehosteten Lösung bin, und ich kann nicht viel in Art der Konfiguration und Einstellungen für IIS 6 tun.
Ich habe MVC2 bis in einen Grad, ich verwende den folgenden globalen.asax -Code:
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 = "" }
);
}
In der ersten Route musste ich {Controller} .aspx angeben, da IIS 6 nicht in der Lage war, Non -ASPX -Code auszuführen (oder so ähnlich, nicht wirklich sicher).
Das ist in Ordnung, die folgenden Funktionen: hxxp: //mysite.com/home.aspx, hxxp: //mysite.com/projects.aspx, hxxp: //mysit.com/contact.aspx
Das sind alles Controller und ich kann auch ihre angesehenen Aktionen ausführen.
Das Problem ist, dass ich keine leere URL ordnungsgemäß machen kann (dh hxxp: //mysit.com/). Sie gibt mir einen Fehler "Verzeichnislisten verweigert".
Die Frage, die ich habe, ist mit einer Standard -Datei, die sich am Root befindet (der ausführt). Kann ich den Heimcontroller ohne einfache Antwort laden. REDIRECT?
Danke, Matthew
Lösung
Die Tatsache, dass Sie "Verzeichnislisten verweigert" erhalten, bedeutet, dass der ISAPI -Filetr nicht mit der Arbeit mit MVC übereinstimmt.
Andere Tipps
Die Tatsache, dass Sie "Verzeichnislisten abgelehnt" erhalten, bedeutet, dass Sie kein Standarddokument haben und der Server versucht, eine Liste von Dateien im Stammordner anzuzeigen.
Aktualisieren Sie das Standarddokument auf so etwas wie "default.aspx". Ihr Hosting -Anbieter sollte dafür eine Option haben. Das ist sehr häufig.
Sie können dieses Verhalten auf IIS6 und IIS7 deaktivieren
// Disable IIS looking at physical files and directories
RouteTable.Routes.RouteExistingFiles = true;