我才刚刚开始使用VS2008MVC和新入门的ASP.Net动态数据网站模板。我注意到他们在网址处理中都使用了路由,而且我知道由于路由的原因,ASP.Net MVC在IIS6下不能工作。但是,我的DynamicData站点在IIS6上运行得很好。
由于IIS7的需求,我不得不暂时放弃对ASP.Net MVC的探索,我想知道两者之间的本质区别是什么,即是什么使得DynamicData站点在IIS6和MVC上不能工作?
发布于 2008-10-04 09:44:49
ASP.NET MVC确实可以在IIS6 (以及IIS5 )下工作,只要你用enable wildcard mappings连接到ASP.NET,我已经使用IIS6将MVC应用程序部署到了生产环境中,所以我可以保证这是可能的。
关键的区别在于,DynamicData中的所有URL都以一个带有ASPX扩展名的文件结尾,因此,无论实际存在与否,ASP.NET运行时都会被调用(因为ASPX与ASP.NET相关联),而大多数MVC请求没有扩展名(或者具有MVC扩展名,默认情况下没有映射),因此在工作之前需要对ASP.NET进行配置。
IIS7自动工作,因为IIS7本身是托管的,因此在IIS/ASP.NET之间没有分离。
发布于 2008-10-06 08:20:48
它们都可以开箱即用地使用IIS6,而不需要修改IIS6。你只需要使用一些映射到asp.net isapi的扩展,比如.aspx、.ashx或类似的扩展。
而且,在IIS6上运行ASP.NET MVC没有任何问题!我在IIS6上运行它,并将.html扩展映射到asp.net isapi!
一些共享主机提供商愿意对IIS6进行更改,以便支持无扩展urls。如果他们不想这样做,你可以要求他们将.html映射到asp.net,urls很好用,而且对seo很友好。顺便提一下,谷歌不会介意你有.aspx或.html,就像没有扩展一样。
发布于 2008-10-05 14:20:40
ASP.Net MVC和Dynamic Data使用System.Web.Routing中包含的相同路由引擎,因此它们都可以在IIS6下工作。这个问题与映射到ASP.Net的请求有关(如@Richard Szalay所述)。如果使用通配符映射,如果.mvc扩展名映射到ASP.Net,或者如果另一个文件扩展名已经映射到ASP.Net (.aspx、.ashx、.axd等),则MVC在ASP.Net下工作得很好。在MVC路由中使用。
https://stackoverflow.com/questions/168481
复制相似问题