ASP.NET MVC 3: Verschoben-app in virtuelle Verzeichnis. Was muss ich ändern?
Leute,
Ich habe die Arbeit auf eine MVC-3-app. Ich war mit VS 2010 integrierten web-server. Heute, aus verschiedenen Gründen wurde ich gebeten, verschieben Sie Sie in einem virtuellen Verzeichnis, und führen Sie es unter IIS 7 immer noch auf meinem Entwicklungs-PC.
Nun, dass seine URL "localhost/MyVirtualDirectory" im Gegensatz zu "localhost:12345", was muss ich ändern, damit das routing funktioniert, und wo?
Ich bin nicht mit jeder raw-HTML-Anker-tags oder leitet, nur @Html.ActionLink und so weiter. Nach dem was ich gelesen habe, wenn ich habe Dinge zu tun, die MVC Weg, sollte diese Veränderung transparent.
Doch gleich am Anfang, das post-Authentifizierungs-redirect-Fehler. Bei erfolgreicher Authentifizierung, es soll das Ergebnis der
this.RedirectToAction("index", "Home")
Du hast es erraten: statt "/MyVirtualDirectory/Home" die Umleitung geht auf "/Home". Was aber nicht funktioniert.
So etwas fehlt, muss eingerichtet werden. Was ist es?
Dank, alle.
- Was macht Ihr
RegisterRoutes
sieht aus wie in Ihrer Global.asax? - Sie wahrscheinlich IIS konfiguriert falsch. Dieser sollte vollständig transparent sein.
- OK, ich bin bereit zu glauben, dass. Tun MVC-Anwendungen werden anders gesetzt aus WebForms-Anwendungen?
- absolut keine. ASP.NET MVC ist einfach ein gewöhnliches ASP.NET -Anwendung. Nichts anderes. Wenn Sie also wissen, wie zu setup ein ASP.NET Anwendung in IIS, die Sie wissen, wie zu setup ein ASP.NET MVC-Anwendung in IIS. Und wenn Sie nicht wissen, es ist eine Frage, die Sie Fragen konnte, auf serverfault.com was ist besser geeignet für server-Konfigurations-Fragen wie diese.
- Dachte, ich wüsste, wie, aber es ist schon eine Weile. Ich besuchen werde serverfault.com. Und ich danke Ihnen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In IIS, wählen Sie das virtuelle Verzeichnis und "Convert to Application." Auch, wenn Sie mit dem Standard-route-map in Ihrer Global.asax sollte es Lesen so etwas wie dieses:
Argumentation: Wenn Sie Ihre MVC-Anwendung in ein Unterverzeichnis einer anderen Anwendung dann IIS betrachten die Wurzel des anderen Anwendung, anstatt die Wurzel des MVC Anwendung. Wenn das ist das Verhalten, das Sie wollen (sehr unwahrscheinlich), dann benötigen Sie zum ändern Ihrer Globalen.asax das zu berücksichtigen: