在以往,我們要發行網站上線時,還需要自己安裝電腦,準備好各種前置作業,才能讓自己的網站曝光到網路上。而在\雲端服務越來越流行的現在,我們甚至連機器都不需要,只要註冊好雲端服務,所有的資料庫、機器等設定都可以透過Browser解決,甚至連擴充網站的實體都只要調整一條Scroll Bar就可以完成,這些都是以前非常難以想像的,我今天就要向大家介紹如何將網站發行Azure。
※建立Cloud Service
首先必須在Azure開啟帳號,並設定相關資料,這邊就直接略過進入到主題,我們先建立一個雲端服務,我們將網站佈署到雲端服務上面
※建立SQL資料庫
再來我們要建立資料庫以供網站和Exception記錄使用
※建立ExceptionDB的資料庫
原本我們用來建立ExceptionDB的Script沒辦法直接使用在Azure的SQL之中,但在網路上已經有人提供了解決方法,大家可以參考這一篇文章取得SQL
ASP.NET MVC 與 Elmah.MVC 2.1.1 以及使用 Windows Azure SQL Database 的Schema 修改
建立完成後,應該可以看到Table和StoredProcedure如下
因為我們使用EntityFramework Code First來發開網站,因此在這個範例中我們不需要建立ShopContextDB的Table,而是讓網站在執行時期透過Entity Framework自動建立,不過在正式的專案中還是建議自己來管理資料庫的結構
※修改網站Release的設定檔
Visual Studio內建了相當強大的設定轉換功能,我們可以發現Web.config檔除了本身之外,其實還包含了Web.Debug.config和Web.Release.config,這是Visual Studio可以在建置時,會依據建置不同的版本將config檔修正為該版本所需要的設定,例如最常見的就是修改Debug和Release時的資料庫連線資訊,我們也將帶著大家來做一遍
打開Web.Release.config加入以下資訊
<connectionStrings>
<add name="ApiSample.DA.Tables.ShopContext" providerName="System.Data.SqlClient" connectionString="Server=tcp:yourserver.database.windows.net,1433;Database=ShopContextDB;User ID=youraccount;Password=yourpassword;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
<add name="ExceptionDB" providerName="System.Data.SqlClient" connectionString="Server=tcp:yourserver.database.windows.net,1433;Database=ExceptionDB;User ID=youraccount;Password=yourpassword;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
比較特別的是在XML的最後面多出了
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"
這是代表在Release時將會根據name來尋找同樣的設定,並替換為新的值
建立雲端專案
首先必須先安裝.Net Framework Azure SDK,可以在這邊取得
註: 在之前的文章中,我們有限制elmah的存取網站,在這邊記得加入你本地的IP,當然更好的做法是直接使用權限系統來管理存取權限!
註: 若要正確讓網站運行,記得要先將資料庫輸入一些測試資料(例如:使用者、商品資料等等)
※本日小結
透過Azure,原本我們需要花費需多時間來建立伺服器環境,包含網站的站台或是資料庫等等,現在只需要在網路上根據自己的使用量設定好,馬上就有現成的環境可以發行或測試網站,真的是非常的方便,關於更多Azure的使用技巧和細節,也可以參閱官方豐富的文件,關於今天的內容歡迎大家一起討論^_^