0

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

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

4

3 回答 3

5

只要您启用到 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 之间没有分离。

于 2008-10-04T09:44:48.850 回答
1

它们都在 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,就像没有扩展名一样。

于 2008-10-06T08:20:47.880 回答
0

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

于 2008-10-05T14:20:39.743 回答