Pages

Web Deploy with SQL

Jun 19, 2014

本文說明如何在 Visual Studio 2013 直接發行 Web ,並同時更新資料庫。為了日後可以一鍵發行,事前準備工作是值得花時間瞭解,大致分為 IIS Server 端與 VS 開發端兩個部份的環境設定。

IIS 環境設定

這是以 Windows 2008 Server R2 環境為例。
IIS 必要安裝有 4 項
  • IIS 記錄工具
  • IIS 管理服務
  • Web Deployment Tool 2.1
  • Web Deploy 3.5
前兩項設定在 伺服器管理員 > 網頁伺服器 IIS > 新增角色服務

image

勾選入下圖兩項,進行安裝。
image

Web Deploy 工具是在 IIS 新增 Extenstion,
image

點擊 Web Deployment Tool 2.1、Web Deploy 3.5 新增的按鈕
image

VS 開發環境

設定 SQL 發行 

SQL 發行主要是可以將來源資料庫(開發環境) 與目標資料庫 (QAS 或 Production),進行比對 Schema 與資料,再發行同時更新至目標資料庫。
在 Web 專案 > 右鍵 > 屬性 > Package/Publish SQL,進入設定畫面。
在此可以設定新增多個 Database Entry,在設定來源與目標資料庫連線。

image
  1. 新增一個 Database Entries,名稱可以自訂。
  2. 輸入來源資料庫連線字串。
  3. 輸入目標資料庫連線字串,並選擇更新 Schema Only ,  Schema and Data, Data Only
    選擇 Schema 會包括資料表、預存程序…等資料庫物件。
  4. 也可以增加其他的 SQL Script。

Web 發行設定

在 Visual Studio 2013 Web 專案可以設定多個發行設定 (Profile),在此新增一個自訂 Profile。

建立 Profile

點擊專案 > 右鍵 > [Custom],輸入名稱。

image

WEB 主機連線

設定部署目標 Server 的資訊,輸入後點擊 [Validate Connection]

image
若有錯誤訊息,則可能要回到< IIS 環境設定> 檢查是否完成。

細部設定

選取發行的組態模,對資料庫連線設定。

image
  1. 可選擇發行時採用哪一個組態,若選擇 Debug 則會將 Web.config 與 Web.Debug.config 做合併產生 Web.config 儲存至 Server。
  2. 針對 Web.config 的資料連線字串調整為發行端的環境。
    若想在發行過程調整資料連線字串,也可以在 Web.Debug.config / Web.Release.config 上動手。
  3. 選取則依上述產生至 Web.config 檔案,不選取則僅做 SQL 更新。
  4. 發行時是否要更新資料庫。

完成所有設定,按下最後一鍵 [Publish],若順利則會更新 Web 與 SQL。

參考資料