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,它是一樣的,沒有擴展名。