【问题标题】:ASP.NET MVC: Making routes/URLs IIS6 and IIS7-friendlyASP.NET MVC:使路由/URL 对 IIS6 和 IIS7 友好
【发布时间】:2010-09-11 15:55:32
【问题描述】:

我有一个 ASP.NET MVC 应用程序,我希望它可以部署在 IIS6 和 IIS7 上,众所周知,IIS6 需要 URL 中的“.mvc”命名。

此代码是否可以确保它适用于所有 IIS 版本?无需针对不同的 IIS 版本对代码、global.asax 或配置文件进行特殊调整。

bool usingIntegratedPipeline = HttpRuntime.UsingIntegratedPipeline;

routes.MapRoute(
    "Default",
    usingIntegratedPipeline ?
        "{controller}/{action}/{id}" : "{controller}.mvc/{action}/{id}",
    new { controller = "Home", action = "Index", id = "" }
);

更新:忘了说。没有 ISAPI。托管网站,无法控制 IIS 服务器。

【问题讨论】:

    标签: .net asp.net-mvc iis url url-routing


    【解决方案1】:

    这应该可以解决 .mvc 问题,因为集成管道严格是 IIS7。 但请记住在 IIS7 网站上更改设置以使用“2.0 Integrated Pipeline”,否则它也会返回 false。 还可以设置 .mvc 到 asp.net isapi dll 的映射,但我猜你已经知道了。

    关于在 IIS6 上部署 MVC 应用程序时可能需要记住的一些小建议,我发现这些小建议很有用: http://msmvps.com/blogs/omar/archive/2008/06/30/deploy-asp-net-mvc-on-iis-6-solve-404-compression-and-performance-problems.aspx

    【讨论】:

      【解决方案2】:

      您可以使用 ISAPI 过滤器来重写 URL,这将允许您在 IIS 6 上仍然拥有漂亮的 URL。

      看,例如here

      【讨论】:

        猜你喜欢
        • 2011-04-06
        • 2013-09-03
        • 1970-01-01
        • 1970-01-01
        • 2012-09-16
        • 1970-01-01
        • 2012-10-20
        • 1970-01-01
        • 2013-02-14
        相关资源
        最近更新 更多