ASP MVC 學習系列——02 Deploy到IIS 5.1

 建立了一個ASP MVC project,實現了簡單的login功能。當嘗試部署到IIS的時候,出現問題:

除了default.aspx之外,其他頁面都無法打開。

 

google了一下,發現原因是:

ASP.NET MVC框架靠ASP.NET Routing來將瀏覽器請求轉到控制器行爲上。

也就是說,當輸入網址後,產生的瀏覽器請求,是不能被ASP MVC框架直接處理的,

需要ASP.NET Routing將其轉化成控制器(controller)行爲,才能找到相應的頁面。

 

然而不幸的是,並不是所有的IIS版本都支持ASP.NET Routing:

  •     IIS7.0 (集成模式) - 支持ASP.NET Routing
  •     IIS 7.0(經典模式) - 需要針對ASP.NET Routing進行一些特殊配置
  •     IIS 6.0和更低版本   - 需要針對ASP.NET Routing進行一些特殊配置

<http://www.cnblogs.com/deafcat/archive/2009/03/03/1401966.html>

 

我用的是IIS 5.1,針對它的配置如下:

1) 在IIS應用程序配置中新增.mvc的映射方法:

IIS站點屬性=>目錄=>配置=>映射=>添加=>可執行文件C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_isapi.dll,擴展名爲:.mvc 

動作可選全部,也可設定爲:GET,HEAD,POST,DEBUG 同時必須選中腳本引擎且不能選擇檢查文件是否存在選項。

2) 修改MvcApplication類的RegisterRoutes方法:

將{controller}/{action}/{id}修改爲{controller}.mvc/{action}/{id}。

示例代碼:

 

 

這樣,在Url裏會有.mvc的後綴,對於這個擴展名,由於我們添加了對.mvc要用aspnet_isapi.dll處理的映射,

那麼ASP.NET Routing可以將這個瀏覽器請求轉換成相應的controller行爲。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章