Web Deploy 簡介

作者 :嚴格Mittal

什麼是 Web Deploy?

Web Deploy 是可延伸的用戶端伺服器工具,可將內容和設定同步處理至 IIS。 Web Deploy 主要用於兩種案例:

  1. 開發人員使用它將 (也稱為「發佈」) 已編譯的 Web 應用程式, (ASP .Net、PHP 等) 從開發人員工具 (Visual Studio、WebMatrix 等) 同步處理至 IIS
  2. IT 專業人員使用它將網站 & 應用程式從執行舊版 IIS 的作業系統移轉至執行較新版本 IIS 的作業系統,例如 IIS 7.5。

顯示來源到目的地路徑的圖表。這些點之間的是網站、資料庫和組態。

Web Deploy 與 FTP 有何比較?

Web Deploy 通常會與 FTP、XCOPY 或 RoboCopy 等技術進行比較。 雖然這些技術很有用,但 Web Deploy 提供數個優點。

以下是 Web Deploy to FTP 的比較:

  1. Web 部署的速度比 FTP 快。 Web Deploy 不會針對每個作業發出不同的命令。 相反地,它會在同步處理開始時進行比較,並只傳輸變更。
  2. Web Deploy 是安全的。 Web Deploy 支援透過 HTTPS 傳輸。 請注意,SFTP 和 FTPS 等 FTP 變體也是安全的。
  3. Web Deploy 可以在目的地檔案和目錄上 (ACL) 設定安全性描述項。 例如,您可以使用 Web Deploy,在部署期間提供應用程式「下載」資料夾的特定存取權給 Windows 使用者。
  4. Web Deploy 可以發佈資料庫。 Web Deploy 具有立即可用的支援,可針對 SQL Server、MySQL Server、Sqlite 和 SQL Server Compact 資料庫編寫腳本,並在同步處理期間套用產生的腳本。如果您的應用程式需要資料庫才能運作,這非常有用。
  5. Web Deploy 可以在部署期間套用轉換。 您可以使用 Web Deploy 在同步處理期間變更 連接字串 或應用程式設定。Web Deploy 支援大量的轉換,包括轉換 IIS 設定。
  6. Web Deploy 與 Visual Studio 2010 和 WebMatrix 整合。
  7. 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 支援兩個連線端點,而您使用的端點取決於數個因素:

此圖顯示 I I I S 7 目的地的判定樹。

  • 如果目的地是執行 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我們的技術檔