【问题标题】:What's the difference between ASP.Net MVC Routing and the new ASP.Net DynamicData Site routing?ASP.Net MVC Routing 和新的 ASP.Net DynamicData Site 路由有什么区别?
【发布时间】:2010-09-15 04:07:41
【问题描述】:

我才开始使用 ASP.Net MVC 和新的 VS2008 动态数据网站模板。我注意到他们在处理 URL 时都使用了路由,我知道由于路由,ASP.Net MVC 在 IIS6 下无法工作。但是我的 DynamicData 站点在 IIS6 上运行良好。

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

【问题讨论】:

    标签: asp.net-mvc visual-studio-2008 .net-3.5 asp.net-dynamic-data


    【解决方案1】:

    只要你在enable wildcard mappings 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 之间没有分离。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        它们都在 IIS6 上开箱即用,无需修改 IIS6。您只需使用一些映射到 asp.net isapi 的扩展名,例如 .aspx、.ashx 或类似的。
        此外,ASP.NET MVC 在 IIS6 上运行没有问题!我在 IIS6 上运行它,将 .html 扩展名映射到 asp.net isapi!
        一些共享主机提供商愿意对 IIS6 进行更改以支持无扩展名 url。如果他们不想这样做,您可以要求他们将 .html 映射到 asp.net,网址很好,并且对 seo 友好。顺便提一下; google 不会介意你有 .aspx 或 .html,就像没有扩展名一样。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-30
          • 1970-01-01
          • 2022-01-04
          • 1970-01-01
          • 1970-01-01
          • 2010-12-09
          相关资源
          最近更新 更多