Web Deploy 簡介
作者 :嚴格Mittal
什麼是 Web Deploy?
Web Deploy 是可延伸的用戶端伺服器工具,可將內容和設定同步處理至 IIS。 Web Deploy 主要用於兩種案例:
- 開發人員使用它將 (也稱為「發佈」) 已編譯的 Web 應用程式, (ASP .Net、PHP 等) 從開發人員工具 (Visual Studio、WebMatrix 等) 同步處理至 IIS
- IT 專業人員使用它將網站 & 應用程式從執行舊版 IIS 的作業系統移轉至執行較新版本 IIS 的作業系統,例如 IIS 7.5。
Web Deploy 與 FTP 有何比較?
Web Deploy 通常會與 FTP、XCOPY 或 RoboCopy 等技術進行比較。 雖然這些技術很有用,但 Web Deploy 提供數個優點。
以下是 Web Deploy to FTP 的比較:
- Web 部署的速度比 FTP 快。 Web Deploy 不會針對每個作業發出不同的命令。 相反地,它會在同步處理開始時進行比較,並只傳輸變更。
- Web Deploy 是安全的。 Web Deploy 支援透過 HTTPS 傳輸。 請注意,SFTP 和 FTPS 等 FTP 變體也是安全的。
- Web Deploy 可以在目的地檔案和目錄上 (ACL) 設定安全性描述項。 例如,您可以使用 Web Deploy,在部署期間提供應用程式「下載」資料夾的特定存取權給 Windows 使用者。
- Web Deploy 可以發佈資料庫。 Web Deploy 具有立即可用的支援,可針對 SQL Server、MySQL Server、Sqlite 和 SQL Server Compact 資料庫編寫腳本,並在同步處理期間套用產生的腳本。如果您的應用程式需要資料庫才能運作,這非常有用。
- Web Deploy 可以在部署期間套用轉換。 您可以使用 Web Deploy 在同步處理期間變更 連接字串 或應用程式設定。Web Deploy 支援大量的轉換,包括轉換 IIS 設定。
- Web Deploy 與 Visual Studio 2010 和 WebMatrix 整合。
- Web Deploy 是可延伸的。 Web Deploy 具有豐富的可公開存取擴充性模型,可讓您撰寫新的案例。
如何運作?
大部分的Web Deploy作業都是針對來源與目的地之間的同步作業進行模型化。 同步作業是由 Web Deploy 架構使用一或多個 Web 部署提供者進行協調,如下所述。
架構
Web Deploy 是由管理連線狀態的架構所組成,並協調來源 & 目的地之間的同步處理。 例如,架構負責略過同步處理特定類型的內容、執行規則和轉換檔案。
架構可透過公用 API 以及命令列可執行檔案 存取,msdeploy.exe。
提供者
Web Deploy 可以透過使用其內建提供者,在兩個位置之間同步處理任何類型的數據,這些提供者會插入架構。 提供者知道如何同步處理兩個來源之間的特定數據類型,或擷取數據源的實用資訊。
例如,Web Deploy 有一個提供者可與 dbFullSql) (SQL 資料庫搭配運作,可將整個 SQL Server 資料庫同步處理到另一部伺服器。 其他內建提供者會 (dbMySql) 、IIS 7 組態 (appHostConfig) 、GAC 元件 (gacAssembly) 或 (comObject32/comObject64) 同步處理 MySQL 資料庫。 您可以在 TechNet 上找到更完整的清單。
提供者模型是可延伸的,如果開發人員需要同步處理自定義數據,可讓開發人員撰寫自己的Web Deploy 提供者。
幕後
當來源透過 Web Deploy 起始動作時,Web Deploy Framework 會建立與目的地的連線。 Web Deploy 支援兩個連線端點,而您使用的端點取決於數個因素:
- 如果目的地是執行 IIS6 的 Windows Server 2003,您可以連線到其 Web Deployment Agent Service (也稱為遠端代理程式服務) 端點。 遠端代理程式服務提供此連線的安全性,而且只能供系統管理員使用者存取。
- 如果目的地是執行 IIS7 的 Windows Server 2008 或執行 IIS7.5 的 Windows Server 2008 R2,而且您使用非系統管理員認證進行連線,您必須連線到 Web 管理服務端點。 Web Deploy 會在 Web Management Service 中安裝處理程式,可讓非系統管理員在向 Web Management Service 進行驗證和授權之後進行部署。
- 如果目的地是執行 IIS7 的 Windows Server 2008 或執行 IIS7.5 的 Windows Server 2008 R2,而且您使用系統管理員認證進行連線,您可以連線到任一端點。
若要深入瞭解
請流覽我們的 逐步解說教學課程,以取得 iis.net 和 我們的技術檔。