使用「單鍵發行」快速發行Web+資料庫
主題 |
使用「單鍵發行」快速發行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與資料更新這些繁雜步驟,而且只針對有異動的檔案上傳到伺服器,在遠端傳輸時可以大幅減少傳輸時間。