利用Web單鍵發行的Web部署來發行網站可能會遇到什麼問題,以及建議的設定步驟,本文將會進行說明。
Visual Studio 2010提供了多種ASP.NET Web應用程式部署的方式,從FTP、檔案系統、FPSE及MSDeploy等,本文將介紹如何利用MSDeploy來做到,設定一次之後可以利用單鍵來發行Web,讓Visual Studio及Web Deployment Agent Service幫你建立Web應用程式,是一個相當便捷的功能,該如何實作說明如下:
【環境說明】
- 開發環境:Windows 7 Standard x86、Visual Studio 2010 Ultimate。
- 正式環境:Windows Server 2008 R2 Standard
首先必須打開Web單鍵發行的功能,步驟請見下圖:
當您發現您的Web單鍵發行功能如上圖是反白無法使用的狀況,原因是Web單鍵發行功能只能用在Web應用程式專案,不能用在Web網站專案,兩者的差異請見參考資料。因此筆者改開一個Web應用程式專案,就可以使用Web單鍵發行功能(如下圖)。
於Web單鍵發行工具箱上按新增以新增發行設定。
輸入下列資訊(如下圖):
- 發行設定檔的名稱。
- 發行方法選擇Web部署
- 服務URL可以依照下方的提示輸入【https://網址:埠號/MSDeploy.axd】或【https://網址:埠號/】。
- 輸入網站名稱及應用程式到時候要部署在該網站所使用的名稱。
若您的Web應用程式想要部署至IIS後變成應用程式,必須勾選【在目的地標記為IIS應用程式】。
本文以下圖所輸入的資訊來進行Web部署的測試:
注意,本文使用Administrator為方便示範之用,建議實務上避免使用Administrator來發行Web。
發行時應該會出現下列的錯誤訊息:
錯誤 1 Web 部署工作失敗。(無法連線到目的電腦 ("192.168.192.172")。在目的電腦上,請確認 Web Deploy 已安裝,並且必要的處理程序 ("Web Deployment Agent Service") 已經啟動。)
這個錯誤表示您無法連接伺服器。請確定服務 URL 正確無誤、已正確設定這部電腦和伺服器電腦上的防火牆和網路設定,而且已在伺服器上啟動適當的服務。
錯誤詳細資料:
無法連線到目的電腦 ("192.168.192.172")。在目的電腦上,請確認 Web Deploy 已安裝,並且必要的處理程序 ("Web Deployment Agent Service") 已經啟動。
無法連接至遠端伺服器
通訊端操作嘗試連線到一個無法連線的網路。 192.168.192.172:80 0 0 WebApplication5
從錯誤訊息看來目的端電腦尚未安裝Web Deployment Agent Service,以至於Web部署失敗,由於內建並無這個服務,必須至IIS官網下載Web Deploy 2.0並安裝至目的地的機器上,從IIS官網上可選擇利用Web Platform Installer來安裝或是直接依照作業系統的位元數來手動下載安裝檔,筆者選擇手動安裝x64版的Web Deploy 2.0,下載及安裝過程截圖如下:
安裝完畢之後請從服務檢查是否有Web Deployment Agent Service這個服務,且其啟動類型為自動(如下圖)。
接著再重新發行一次Web應用程式,此時很不幸地又出現下列的錯誤訊息:
錯誤 1 Web 部署工作失敗。(無法連線到目的電腦 ("192.168.192.172")。在目的電腦上,請確認 Web Deploy 已安裝,並且必要的處理程序 ("The Web Management Service") 已經啟動。)
這個錯誤表示您無法連接伺服器。請確定服務 URL 正確無誤、已正確設定這部電腦和伺服器電腦上的防火牆和網路設定,而且已在伺服器上啟動適當的服務。
錯誤詳細資料:
無法連線到目的電腦 ("192.168.192.172")。在目的電腦上,請確認 Web Deploy 已安裝,並且必要的處理程序 ("The Web Management Service") 已經啟動。
無法連接至遠端伺服器
連線嘗試失敗,因為連線對象有一段時間並未正確回應,或是連線建立失敗,因為連線的主機無法回應。 192.168.192.172:8172 0 0 WebApplication5
從保哥的如何使用 Visual Studio 2010 的「單鍵發行」功能 (MsDeploy)一文查出,原來少安裝IIS的管理服務的角色服務(如下圖)。
安裝完畢之後檢查服務中的Web Management Service是否啟動(如下圖)。
再重試一次發行,終於可以看到發行成功的訊息(如下圖)。
從IIS管理員看來的確Web部署工具幫我們在Default Web Site下建立WebApp5這個應用程式(如下圖)。
於開發環境上打開IE執行WebApp5上的Index.aspx,可以看到網頁正常顯示,表示部署成功。
【結論】
要使用Web部署來做Web單鍵發行,建議步驟如下:
- 啟用管理服務的角色服務。
- 安裝Web Deploy 2.0。
- 設定發行設定檔。
- 單鍵發行。
【參考資料】
- ASP.NET Web 應用程式專案部署概觀
- Visual Studio 2010 1-Click Publishing,Scott Forsyth's Blog,owscott
- 如何使用 Visual Studio 2010 的「單鍵發行」功能 (MsDeploy),The Will Will Web,保哥
- Visual Studio 2010 單鍵發行簡單使用 Web.Release.config,demoshop,Demo
- Web 應用程式專案和網站專案的比較
- Web Deploy 2.0
- ASP.NET Web 應用程式專案部署常見問題集