虛擬主機中,不修改IIS設(shè)置,在IIS6下運行MVC架構(gòu)的網(wǎng)站
我為什么要寫這個教程呢?
主要是為了解決把網(wǎng)站部署在虛擬主機上的人,因為你根本不能去配置虛擬主機 所以,用下面的方法,可以實現(xiàn)不配置IIS而使老版本IIS運行MVC。
首先,給大家推薦2個MVC的學(xué)習(xí)好去處:
1、重典MVC視頻教程:http://www.youku.com/playlist_show/id_2416830.html
2、微軟官方MVC教程:http://www.asp.net/mvc/learn(英文,但是…我這樣沒過4級的都可以輕易看懂了…)
看本文的人必須要有MVC基礎(chǔ),所以很多名詞我就不解釋了
在老版本的IIS中架設(shè)MVC有1個條件:必須安裝 Framwork 3.5,SP1不是必須的。所以如果你的虛擬主機是2.0的,那就免談了。現(xiàn)在市面上一般都升級到3.5了
如果你不具備這個最簡單的條件,那你的服務(wù)器也就根本不能使用MVC架構(gòu)的網(wǎng)站了
好了,接下來介紹下我們要做的幾個步驟
1、復(fù)制幾個缺失的運行庫到bin文件夾
老版本不能運行主要原因當(dāng)然是因為缺失dll文件啦,其中最重要的是mvc核心庫
前三個在C:\Program Files\Microsoft ASP.NET\ASP.NET MVC 2中
System.Web.Mvc.dll
System.Web.Mvc.xml
Microsoft.Web.Mvc.Build.dll
下面2個是 3.5 sp1的動態(tài)鏈接庫,去有sp1的電腦上復(fù)制下就可以了
System.Web.Routing.dll
System.Web.Abstractions.dll
2、在根目錄新建Default.aspx頁面,并在后臺寫入代碼
老版本IIS會驗證文件是否存在,所以必須新建一個頁面,然后在寫上代碼就可以了
1 public partial class _Default : Page
2 {
3 public void Page_Load(object sender, System.EventArgs e)
4 {
5 HttpContext.Current.RewritePath(Request.ApplicationPath);
6 IHttpHandler httpHandler = new MvcHttpHandler();
7 httpHandler.ProcessRequest(HttpContext.Current);
8 }
9 }
10
3、設(shè)置Route路由表
為了充分利用mvc的新特性,強烈建議你在建設(shè)網(wǎng)站的時候全部采用 controller[/action][/id].aspx 這樣的形式
有方括號代表可省略,但是不能只省略action而不省略id(其實可以實現(xiàn),但是有限制和注意點,我這里先介紹基本的)
主參數(shù)就是id,如果有多個 http參數(shù),就需要用顯示GET傳送了
controller/action/id.aspx?page=1
下面就是Global.asax文件里的Route設(shè)置
//默認匹配
routes.MapRoute("NoAction", "{controller}.aspx", new { controller = "home", action = "index", id = "" });//無Action的匹配
routes.MapRoute("NoID", "{controller}/{action}.aspx", new { controller = "home", action = "index", id = "" });//無ID的匹配
routes.MapRoute("Default", "{controller}/{action}/{id}.aspx", new { controller = "home", action = "index", id = "" });//默認匹配
routes.MapRoute("Root", "", new { controller = "home", action = "index", id = "" });//根目錄匹配
這樣配置后,別人訪問你的網(wǎng)站還是想以前的asp.net一樣,全部是以aspx為后綴名。
這樣配置后你的虛擬主機也就不會出問題了
OK,3個步驟完成后把你的網(wǎng)站發(fā)布到虛擬空間吧!一般不會有問題
本網(wǎng)站就是用MVC架構(gòu)的,下面給個下載地址,是Default文件和那5個庫文件
注意一下,自己更改下Default.aspx和Default.aspx.cs文件里的命名空間,其實不改也不會出問題
我為什么要寫這個教程呢?
主要是為了解決把網(wǎng)站部署在虛擬主機上的人,因為你根本不能去配置虛擬主機 所以,用下面的方法,可以實現(xiàn)不配置IIS而使老版本IIS運行MVC。

浙公網(wǎng)安備 33010602011771號