愛流浪的小風

技術隨手寫

使用Asp.Net MVC打造Web Api (21) - 發行網站到Azure

| Comments

在以往,我們要發行網站上線時,還需要自己安裝電腦,準備好各種前置作業,才能讓自己的網站曝光到網路上。而在\雲端服務越來越流行的現在,我們甚至連機器都不需要,只要註冊好雲端服務,所有的資料庫、機器等設定都可以透過Browser解決,甚至連擴充網站的實體都只要調整一條Scroll Bar就可以完成,這些都是以前非常難以想像的,我今天就要向大家介紹如何將網站發行Azure。

建立Cloud Service

首先必須在Azure開啟帳號,並設定相關資料,這邊就直接略過進入到主題,我們先建立一個雲端服務,我們將網站佈署到雲端服務上面

  1. 建立一個新的雲端服務

  2. 輸入雲端服務相關資訊

  3. 建立完成

建立SQL資料庫

再來我們要建立資料庫以供網站和Exception記錄使用

  1. 建立一個新的SQL資料庫

  2. 輸入必要的資訊

  3. 建立SQL帳號

  4. 建立完成後,找到建立的伺服器,再建立一個資料庫給Exception使用

  5. 都建立完成後,我們可以看到有兩個資料庫

  6. 為了方便直接操作資料庫,我們要將本地的IP加入防火牆的允取清單中

  7. 確認允許

  8. 我們就可以使用SSMS連接到資料庫了!

建立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時的資料庫連線資訊,我們也將帶著大家來做一遍

  1. 打開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>
    
  2. 比較特別的是在XML的最後面多出了

    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"
    

    這是代表在Release時將會根據name來尋找同樣的設定,並替換為新的值

建立雲端專案

首先必須先安裝.Net Framework Azure SDK,可以在這邊取得

  1. 在網站上加入雲端服務專案

  2. 選擇發行網站

  3. 選擇登入下載認證

  4. 登入之後,下載認證檔

  5. 匯入認證檔

  6. 建立儲存體服務

  7. 確認發行資訊

  8. 明細確認,按下發行

  9. 稍後片刻,等待發行網站,約需15分鐘

    註: 在之前的文章中,我們有限制elmah的存取網站,在這邊記得加入你本地的IP,當然更好的做法是直接使用權限系統來管理存取權限!

  10. 部署完畢之後,可以進入網站

註: 若要正確讓網站運行,記得要先將資料庫輸入一些測試資料(例如:使用者、商品資料等等)

本日小結

透過Azure,原本我們需要花費需多時間來建立伺服器環境,包含網站的站台或是資料庫等等,現在只需要在網路上根據自己的使用量設定好,馬上就有現成的環境可以發行或測試網站,真的是非常的方便,關於更多Azure的使用技巧和細節,也可以參閱官方豐富的文件,關於今天的內容歡迎大家一起討論^_^

Comments

comments powered by Disqus