.net - ASP.NET MVC : Making routes/URLs IIS6 and IIS7-friendly

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

我有一个 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 服务器。

最佳答案

这应该可以解决 .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

关于.net - ASP.NET MVC : Making routes/URLs IIS6 and IIS7-friendly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/109044/

相关文章:

ASP.NET Windows 身份验证模拟问题

c# - 无法加载文件或程序集“System.Web.Helpers,IIS 8 上的错误

c# - Caliburn Micro是否从版本1.1更改为1.5.1?

c# - 通过 Internet 将大型二进制文件从一台电脑发送到另一台电脑的最快方法是什么?

c# - 为什么 "Not all code paths return a value"带有 switch 语句和枚举?

c# - MVC性能: Setting view name vs leaving it blank

c# - .NET 中的 WebRequest 异常

c# - 使用 Rx 同步异步事件

asp.net-mvc - Controller 内的 GetLocalResourceObject

asp.net-mvc - Visual Studio 中的单元测试 MVC Web 应用程序和 QTAgent 问题