ASP.NET MVC: Herstellung der Routen / URLs IIS6 und IIS7 freundlich
-
01-07-2019 - |
Frage
Ich habe eine ASP.NET MVC-Anwendung, die ich sowohl IIS6 und IIS7 ausfahrbaren wollen und wie wir alle wissen, muss IIS6 die „.mvc“ -naming in der URL.
Wird dieser Code arbeiten um sicherzustellen, dass es funktioniert auf allen IIS-Versionen? Ohne spezielle Anpassungen im Code, global.asax oder config-Dateien für die verschiedenen IIS-Versionen zu machen.
bool usingIntegratedPipeline = HttpRuntime.UsingIntegratedPipeline;
routes.MapRoute(
"Default",
usingIntegratedPipeline ?
"{controller}/{action}/{id}" : "{controller}.mvc/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
Aktualisieren : Vergessen zu erwähnen. Kein ISAPI. Hosted Website, keine Kontrolle über den IIS-Server.
Lösung
Das sollte das .mvc Problem beheben, da die integrierte Pipeline ist streng IIS7. Aber denken Sie daran Einstellungen auf der IIS7 Website zu ändern „2.0 Integrierte Pipeline“ verwenden otherwhise es falsch als gut zurück. Auch ofcouse Setup die Abbildung von .mvc auf die asp.net isapi dll, aber ich bin zu raten, dass Sie bereits wissen.
Einige kleine Vorschläge auf andere Dinge, die Sie sich merken müssen, wenn MVC-Anwendungen auf IIS6 bereitstellen, die ich gefunden nützlich: http://msmvps.com/blogs/omar/archive/2008/06/30/deploy-asp-net-mvc-on-iis-6-solve-404-compression- und erfolg problems.aspx
Andere Tipps
Sie können einen ISAPI-Filter neu zu schreiben URLs verwenden, die Sie die schöne URLs, während immer noch auf IIS 6.
haben könnenSehen Sie, zum Beispiel hier