代码之家  ›  专栏  ›  技术社区  ›  cori

ASP.Net MVC路由和新的ASP.Net DynamicATA站点路由之间有什么区别?

  •  0
  • cori  · 技术社区  · 16 年前

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

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

    3 回复  |  直到 12 年前
        1
  •  5
  •   Richard Szalay    16 年前

    IIS6 enable wildcard mappings 到ASP.NET。我已经使用IIS6将MVC应用程序部署到生产环境中,因此我可以保证这是可能的。

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

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

        2
  •  1
  •   Hrvoje Hudo    16 年前

    他们都是开箱即用的IIS6,没有修改IIS6。您只需要使用一些映射到asp.net isapi的扩展名,如.aspx、.ashx或类似的扩展名。

    一些共享主机提供商愿意对IIS6进行更改,以支持无扩展URL。如果他们不想这样做,你可以要求他们将.html映射到asp.net,URL很好地支持这一点,并且有利于seo。只需提及;谷歌不会介意你是否有.aspx或.html,就像没有扩展一样。

        3
  •  0
  •   Sean Carpenter    16 年前

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