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.

War es hilfreich?

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önnen

Sehen Sie, zum Beispiel hier

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top