Ich habe versucht, meine Beta 1 MVC-App auf IIS 6 einzurichten und kann sie nicht korrekt ausführen. Ich habe der .net-isapi-DLL ein Wildcard-Mapping hinzugefügt, wie es in anderen Blogposts vorgeschlagen wird, bekomme aber den folgenden Fehler, wenn ich auf das Stammverzeichnis der Website zugreife:
%Vor%Ich verwende die Default.aspx-Seite, die in der MVC-Vorlagenanwendung bereitgestellt wird, die den Zugriff auf das Stammverzeichnis der Website ordnungsgemäß umschreibt.
%Vor%Wenn ich versuche, auf eine Route in der Anwendung zuzugreifen, z. B. / Project, erhalte ich die Standard-Fehlerseite von IIS 404, nicht die .net-Fehlerseite.
Ich habe versucht, die folgende Zeile zum Abschnitt httpHandlers Web.config hinzuzufügen:
%Vor%Dies gab mir einen anderen Fehler - die .net 404 Fehlerseite.
Ich habe meinem Global.asax folgendes hinzugefügt, was nichts bewirkt hat:
%Vor%Ich verwende die folgende Routenkonfiguration (verwendet das restliche Routing, das vom MvcContrib-Projekt bereitgestellt wird):
%Vor%Irgendwelche Vorschläge würden sofort kommen, da ich alle Möglichkeiten für die Zeit, die ich gerade habe, ausgeschöpft habe.
Vielen Dank.
OK, es funktioniert.
Das Problem bestand darin, dass ich die Msbuild-Automatisierung verwendete, um die Dateien zu packen, die ich bereitstellen musste, und mir fehlte global.asax.
Es sieht also so aus, als wenn global.asax nicht auf der Site bereitgestellt wird, dann wird keine der Routen angeschlossen. Dies bedeutet, dass das korrekte Aufrufen des Website-Stamms zu dem Fehler "Die eingehende Anfrage entspricht keiner Route" führt. Alle anderen Anfragen werden nicht mehr an die Controller-Klassen weitergeleitet, daher wird 404 angezeigt.
HTH.
Folgendes habe ich getan, um plattformunabhängige URLs mit IIS 6 und ASP.NET MVC Beta 1 zu verwenden.
Sie sollten web.config überhaupt nicht ändern müssen. Sie müssen alle Anforderungen nur an die ASP.NET Isapi-DLL an IIS abbilden, sonst wird ASP.NET diese Anforderungen nie erhalten.
Leider benötigt IIS 6 eine Dateierweiterung, um die Anfrage dem rechten Handler zuzuordnen, was bedeutet, dass Sie das .mvc-Suffix für Ihre Controller-Namen verwenden müssen, wie zB / {controller} .mvc / {action}
%Vor%Es gibt jedoch Möglichkeiten, die davon abhängen, wie viel Kontrolle Sie auf dem IIS 6-Server haben. Weitere Informationen finden Sie auf den folgenden Seiten.
Tags und Links asp.net-mvc iis-6 .net-3.5