Web Deploy 是一 client-server 架構的工具程式,能用來同步 IIS 內容與設定,簡化網頁應用程式或是網站的佈署。  

Web Deploy - An extensible client server tool for syncing content and configuration to IIS

具有以下幾個特點:

  • 與 IIS Manager、Visual Studio 無縫整合,能建立 package 並佈署到本地或是遠端機器
  • 整合 WebMatrix
  • 與 Web Platform Installer 無縫整合
  • 網頁應用程式打包 – 能夠打包網頁應用程式或是整個站台,包含關聯的資料庫 – 能夠打包 ACLs、COM、GAC 與註冊檔設定 – 支援 live 伺服器與壓縮後的 package 當成來源或是目的端
  • 網頁應用程式佈署 – 支援非 Admin 權限的網頁應用程式佈署 – 支援參數化佈署,能在佈署時替換檔案中的字串 – 整合 IIS Web Management Service 做非 Admin 的佈署
  • 網站伺服器同步 – 能夠同步整個網頁伺服器、網頁站台、或是網頁應用程式 – 只同步變動的資料 – 能夠在同步時偵測遺失的 dependencies – 同步時自動收集 IIS 設定、SSL certificates、與 ASP.NET 設定
  • 變動前自動備份站台 – 管理員可以設定啟用自動備份 – 使用者可以直接還原站台
  • 支援 CommandLine、PowerShell Cmdlets、與 API

Web Deploy 在運作上如下圖所示:

Web Deploy - An extensible client server tool for syncing content and configuration to IIS

可以看到來源端與目的端都有許多的 Provider,這些 Provider 能針對 Dump、Sync、Delete 等操作有著各自不同的處理方式。這些 Provider 彼此可以搭配使用,達到更多不同的效果。

另外要注意到的是,來源端與目的端電腦之間有兩條可供連線的路,一條是透過 Remote Agent Service,一條是透過 Web Management Service。透過 Remote Agent Service 這條路需使用 Admin 的帳號,若是非 Admin 帳號就要走 Web Management Service 這條路。這兩條路在使用上必須要有所了解,安裝設定或是發生問題時才能知道要怎麼處理。