使用「單鍵發行」快速發行Web+資料庫

姜志民 2017/05/31 18:16:41
1848






主題

使用「單鍵發行」快速發行Web+資料庫

介紹

Visual Studio提供許多Web Application部署的方式,分別為Web Deploy、Web Deploy Package、FTP、File System等方式,本文章要介紹Web Deploy發行方式,使用Web Deploy可以大幅減少手動設定的步驟,這對Internet Information Services(簡稱IIS)不熟悉的新手將會是很大的幫助,而且也只會上傳有異動的程式檔案,這比FTP部署速度也比較快。


Web Deploy除了發佈檔案之外,也可以部署資料庫schema與資料、SQL script…等功能,再部署網站非常方便。

作者

姜志民

版本

1.0

產出日期

2017 / 05/ 30





1 目的

Visual Studio提供許多Web Application部署的方式,分別為Web Deploy、Web Deploy Package、FTP、File System等方式,本文章要介紹Web Deploy發行方式,使用Web Deploy可以大幅減少手動設定的步驟,這對Internet Information Services(簡稱IIS)不熟悉的新手將會是很大的幫助,而且也只會上傳有異動的程式檔案,這比FTP部署速度也比較快。


Web Deploy除了發佈檔案之外,也可以部署資料庫schema與資料、SQL script…等功能,再部署網站非常方便。




2 伺服器-IIS

在有安裝IIS服務的Server上執行Microsoft Web Platform Installer,可至https://www.microsoft.com/web/downloads/platform.aspx下載。在右上角輸入「Web Deploy」,並安裝紅色框框相關的Web Deploy 3.6套件。


進入「控制台」-->「程式和功能」,選擇「Microsoft Web Deploy 3.6」在按「變更」。


將全部項目啟用。


進入「控制台」-->「系統管理工具」-->「服務」,確認「服務」是否有啟動。


在「開發人員端」進行發行可能會出現下圖錯誤,若帳號密碼正確,就有可能是「使用者帳戶控制(UAC)」造成的。


解決方式:在登錄檔(regedit)的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System底下,檢查是否有「LocalAccountTokenFilterPolicy」這個項目。若沒有手動按右鍵新增一個「DWORD(32-位元)值」並命名為「LocalAccountTokenFilterPolicy」,其數值資料為1。




3 開發人員端

在Visual Studio內開啟已存在專案,在專案名稱WebApplication1上按右鍵選擇「發行」。


按「自訂」。


Publish method選擇「Web Deploy」,再填入相關伺服器的IIS資料。


將開發環境的資料庫schema與資料自動同步到目的地伺服器端。按下「設定資料庫更新」。


「設定資料庫更新」內可以新增資料庫的SQL script。



在最後一個步驟「預覽」,可以預覽資料庫的SQL script,也可以看到只針對有異動的檔案上傳到伺服器,在遠端傳輸時可以大幅減少傳輸時間。


成功發行至伺服器可以在Visual Studio的輸出視窗看到下圖訊息。


在瀏覽器輸入http://192.168.2.131/thinkpower/ ,檢查網頁是否有正常。



4 結論

最常見的部署方式就是Ftp + 手動更新資料庫,這樣人工手動操作很容易出錯,尤其是資料庫schema最容易漏掉沒有更新到。若使用Web Deploy,可以免去資料庫schema與資料更新這些繁雜步驟,而且只針對有異動的檔案上傳到伺服器,在遠端傳輸時可以大幅減少傳輸時間。


姜志民