0

我只开始玩ASP.Net MVC和新的VS2008动态数据网站模板。我注意到他们都在他们的URL处理中使用路由,并且我被理解为由于路由,ASP.Net MVC在IIS6下不起作用。但是我的DynamicData站点在IIS6上工作得很好。ASP.Net MVC路由和新的ASP.Net DynamicData站点路由有什么区别?

由于IIS7的要求,我不得不暂时放弃对ASP.Net MVC的探索,因为IIS7的要求,我想知道两者之间的根本区别是什么,即什么使DynamicData站点在IIS6和MVC上工作不?

回答

5

ASP.NET MVC确实可以在IIS6(和IIS5)上工作,只要您使用ASP.NET enable wildcard mappings即可。我已经使用IIS6将MVC应用程序部署到生产环境,所以我可以保证它是可能的。

关键区别在于DynamicData中的所有URL都以ASPX扩展名结尾,因此无论物理存在如何,都会调用ASP.NET运行时(因为ASPX与ASP.NET关联),而大多数ASP。 NET MVC请求没有扩展名(或者有一个MVC扩展名,默认情况下它没有被映射),因此在它的工作之前需要IIS配置。

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

0

ASP.Net MVC和动态数据使用System.Web.Routing中包含的相同路由引擎,因此它们都在IIS6下工作。问题在于将请求映射到ASP.Net(如@Richard Szalay所述)。如果使用通配符映射,如果.mvc扩展名映射到ASP.Net,或者已经映射到ASP.Net(.aspx,.ashx,.axd等)的另一个文件扩展名是在你的MVC路线中使用。

1

它们都可以在IIS6上工作,不需要修改IIS6。你只需要使用一些映射到asp.net isapi的扩展,如.aspx,.ashx或类似的。
另外,ASP.NET MVC可以在IIS6上正常工作!我在IIS6上运行它,将.html扩展映射到asp.net isapi!
一些共享主机提供商愿意对IIS6进行更改以支持无扩展名的网址。如果他们不想这样做,你可以要求他们将.html映射到asp.net,而urls对此很好,而且友好。只要提一下;谷歌不会介意,如果你有.aspx或.html,它是一样的,没有扩展名。