2018年5月12日 星期六

ASP.NET單鍵發行_問題除錯



ASP.NET單鍵發行_問題除錯


主題
使用「單鍵發行」快速發行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套件。
https://tpu.thinkpower.com.tw/tpu/File/html/201705/20170530144518/images/word/media/image1.png

進入「控制台」-->「程式和功能」,選擇「Microsoft Web Deploy 3.6」在按「變更」。
https://tpu.thinkpower.com.tw/tpu/File/html/201705/20170530144518/images/word/media/image2.png

將全部項目啟用。
https://tpu.thinkpower.com.tw/tpu/File/html/201705/20170530144518/images/word/media/image3.png

進入「控制台」-->「系統管理工具」-->「服務」,確認「服務」是否有啟動。
https://tpu.thinkpower.com.tw/tpu/File/html/201705/20170530144518/images/word/media/image4.png

在「開發人員端」進行發行可能會出現下圖錯誤,若帳號密碼正確,就有可能是「使用者帳戶控制(UAC)」造成的。
https://tpu.thinkpower.com.tw/tpu/File/html/201705/20170530144518/images/word/media/image5.png

解決方式:在登錄檔(regedit)的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System底下,檢查是否有「LocalAccountTokenFilterPolicy」這個項目。若沒有手動按右鍵新增一個「DWORD(32-位元)值」並命名為「LocalAccountTokenFilterPolicy」,其數值資料為1。
https://tpu.thinkpower.com.tw/tpu/File/html/201705/20170530144518/images/word/media/image6.png
3 開發人員端
在Visual Studio內開啟已存在專案,在專案名稱WebApplication1上按右鍵選擇「發行」。
https://tpu.thinkpower.com.tw/tpu/File/html/201705/20170530144518/images/word/media/image7.png

按「自訂」。
https://tpu.thinkpower.com.tw/tpu/File/html/201705/20170530144518/images/word/media/image8.png

Publish method選擇「Web Deploy」,再填入相關伺服器的IIS資料。
https://tpu.thinkpower.com.tw/tpu/File/html/201705/20170530144518/images/word/media/image9.png

將開發環境的資料庫schema與資料自動同步到目的地伺服器端。按下「設定資料庫更新」。
https://tpu.thinkpower.com.tw/tpu/File/html/201705/20170530144518/images/word/media/image10.png

「設定資料庫更新」內可以新增資料庫的SQL script。
https://tpu.thinkpower.com.tw/tpu/File/html/201705/20170530144518/images/word/media/image11.png


在最後一個步驟「預覽」,可以預覽資料庫的SQL script,也可以看到只針對有異動的檔案上傳到伺服器,在遠端傳輸時可以大幅減少傳輸時間。
https://tpu.thinkpower.com.tw/tpu/File/html/201705/20170530144518/images/word/media/image12.png

成功發行至伺服器可以在Visual Studio的輸出視窗看到下圖訊息。
https://tpu.thinkpower.com.tw/tpu/File/html/201705/20170530144518/images/word/media/image13.png

在瀏覽器輸入http://192.168.2.131/thinkpower/ ,檢查網頁是否有正常。
https://tpu.thinkpower.com.tw/tpu/File/html/201705/20170530144518/images/word/media/image14.png
4 結論
最常見的部署方式就是Ftp + 手動更新資料庫,這樣人工手動操作很容易出錯,尤其是資料庫schema最容易漏掉沒有更新到。若使用Web Deploy,可以免去資料庫schema與資料更新這些繁雜步驟,而且只針對有異動的檔案上傳到伺服器,在遠端傳輸時可以大幅減少傳輸時間。

沒有留言:

張貼留言

WPF聊天室应用(ASP.NET Core SignalR)

  WPF聊天室应用(ASP.NET Core SignalR) https://www.bilibili.com/video/BV1Q741187Si?p=2 https://www.bilibili.com/video/BV1UV411e75T?from=search&...