Visual Studio 2008 - ASP.Net MVC 路由和新的 ASP.Net DynamicData 站点路由之间有什么区别?



我刚开始使用ASP.Net MVC和新的-VS2008动态数据网站模板。我注意到,它们在URL处理中都使用了路由,并且我了解到,由于路由的原因,ASP.NETMVC在IIS6下无法工作。然而,我的DynamicData站点在IIS6上运行得很好。

由于IIS7的要求,我不得不暂时放弃对ASP.Net MVC的探索,以用于即将到来的项目,我想知道这两者之间的本质区别是什么,即是什么让DynamicData网站在IIS6和MVC上不起作用?

只要启用到ASP.NET的通配符映射,ASP.NET MVC确实可以在IIS6(以及IIS5)下工作。我已经使用IIS6将MVC应用程序部署到生产环境中,所以我可以保证这是可能的。

关键的区别在于,DynamicData中的所有URL都以具有ASPX扩展名的文件结尾,因此,无论物理存在与否,都会调用ASP.NET运行时(因为ASPX与ASP.NET关联),而大多数ASP.NET MVC请求不具有扩展名(或具有MVC扩展名,默认情况下不映射),因此需要IIS配置才能工作。

IIS7会自动工作,因为IIS7本身是受管理的,因此IIS/ASP.NET之间没有分离。

它们都可以开箱即用地处理IIS6,而无需修改IIS6。您只需要使用一些映射到asp.net isapi的扩展,如.aspx、.ashx或类似的扩展
此外,ASP.NET MVC在IIS6上运行没有问题!我在IIS6上运行它,html扩展名映射到asp.net isapi
一些共享托管提供商愿意对IIS6进行更改,以支持无扩展URL。如果他们不想这样做,你可以让他们把.html映射到asp.net,url很好,而且对seo很友好。仅举一例;谷歌不会介意你有.aspx或.html,它就像没有扩展一样。

ASP.Net MVC和Dynamic Data使用System.Web.routing中包含的相同路由引擎,因此它们都在IIS6下工作。问题在于将请求映射到ASP.Net(如@RichardSzalay所述)。如果使用通配符映射,如果.MVC扩展名映射到ASP.Net,或者如果在MVC路由中使用了另一个已经映射到ASP.Net的文件扩展名(.aspx、.ashx、.axd等),MVC在IIS6下会很好地工作。

相关内容

  • 没有找到相关文章

最新更新