【譯】部署Asp.Net MVC 網站到Winodws Azure
上個禮拜,我的Azure邀請碼終于到了,小興奮了一把,于是馬上去注冊賬號,并成功部署了一個網站到Azure上。
由于最近在學習Asp.Net Mvc框架,于是就想部署一個Mvc應用到Azure上,本來理所當然的認為Azure會支持Mvc,結果實際部署之后發現并不支持。
后來經過幾次都不成功之后,有點想放棄了,不過幸好后來看到了以下這篇文章:
http://blogs.msdn.com/jnak/archive/2008/11/10/asp-net-mvc-on-windows-azure-with-providers.aspx
閱讀了這篇文章,發現其實部署一個Mvc應用到Azure其實很簡單,我按照里面所說的步驟很快就成功部署了一個應用。
這是我已經成功部署到Azure上的網站,大家可以先看看效果: http://np.cloudapp.net/
為了方便大家閱讀,我在這里就簡單的翻譯一下,總結起來可以有以下幾點:
1. 新建一個空的Cloud Service,例如叫:MVCCloudService。
2. 添加一個Asp.Net Mvc Application,例如叫MVCWebRole。
3. 卸載剛剛建的MVCWebRole項目。
4. 右鍵編輯MVCWebRole項目文件。
5. 把<RoleType>Web</RoleType>加到項目文件的第一個<PropertyGroup>中,并保存。就像以下那樣:
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
. . .
<RoleType>Web</RoleType>
<PropertyGroup>6. 重新加載MVCWebRole項目。
7. 右鍵點擊MVCCloudService項目的Roles節點,選擇 Add -> Web Role Project in solution
選擇MVCWebRole 項目
8. 最后一步,也是很關鍵的一部。
由于Azure上面沒有安裝ASP.NET MVC RC2,所以你必須把System.Web.Abstractions,System.Web.Mvc,System.Web.Routing這三個dll打包到服務包里面,部署到Azure之后你的網站才能運行正常。打包方法很簡單,就是把MVCWebRole項目引用的這3個dll的復制本地屬性設置為true就可以了。
到這里一個能部署到Azure上正常運行的Asp.net Mvc 應用就已經基本完成了,最后發布的步驟這里就不再啰嗦了,不懂得發布的可以到園子搜索一下,有很多關于如何發布一個應用到Azure的文章。
個人推薦瀏牛木馬的Azure Services Platform Step by Step系列文章:
http://www.rzrgm.cn/azure/tag/Azure/
最后為了方便大家測試,我把按照以上步驟做好的源碼共享給大家。
源代碼: https://files.cnblogs.com/NickYao/MVCCloudService.rar
最后再補充說明一下,在vs 2008中Azure cloud service 項目和Mvc項目在同一個解決方案的話,是會是vs 2008崩潰的,解決辦法就是去下載一個補丁,補丁地址是:https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=16827&wa=wsignin1.0
不過這個補丁不能用于Windows 7,哎。。。我就是在用windows7,白老鼠真的是要承受很多的不便。。。
浙公網安備 33010602011771號