作者 :Bilal Aslam
概觀
Web Deploy 是簡化 Web 應用程式、網站和伺服器的移轉、管理和部署的工具。 它可以用來封裝網站,自動包括內容、設定、憑證和資料庫。 它可用來在 IIS 6.0 或 IIS 7.0 之間同步處理,或從 IIS 6.0 移轉至 IIS 7.0。 建立的套件可用於版本設定、備份或部署。
請注意,IIS 8.0 僅支援 Web Deploy V3。
功能
Web Deploy 包含下列重要功能:
封裝網站和應用程式。 開發人員或系統管理員可以封裝已安裝 Web 應用程式的設定和內容,包括 SQL 資料庫,並使用封裝進行儲存體或重新部署。 然後,您可以使用 IIS 管理員介面來部署這些套件,而不需要遠端伺服器上的系統管理許可權。
將部署工作委派給非系統管理員。 伺服器管理員現在可以選擇將部署工作委派給非系統管理員的使用者。 例如,在共用裝載和企業環境中,部署內容並將資料夾標示為應用程式可以委派。 您也可以啟用適用于專用環境的更進階工作,例如允許部署憑證、網站或 GAC 的元件。
簡化系統管理員的部署。 伺服器管理員會發現委派很有用,因為部署 Web 應用程式包括 GAC'd 元件、憑證和應用程式集區,即使需要擁有權限也相當耗時。
從 IIS 6.0 移轉。 移轉作業可讓系統管理員將月臺或整個伺服器從 IIS 6.0 移轉至 IIS 7.0,包括其設定和內容。 移轉基本上是以移轉規則篩選的同步處理方式。
IIS 6.0 / IIS 7.0 的同步處理。 同步作業可讓系統管理員快速同步處理網站或伺服器,並將變更部署至現有的月臺和伺服器。 同步處理可讓您將一個來源與一個目的地同步處理。 例如,您可以同步處理兩個目錄路徑或兩部網頁伺服器。 同步處理可與本機或遠端物件一起執行。
快照集 IIS 6.0 / IIS 7.0。 快照集或封存功能可讓系統管理員或開發人員快速擷取其網站或伺服器的封存,以供復原、還原或備份之用。
分析 IIS 6.0 / IIS 7.0 上的相依性。 分析作業可讓系統管理員檢查來源伺服器上已安裝哪些元件。 如此一來,他們就可以判斷 IIS 7.0 中是否需要的功能,或需要比直接複製檔案更進階的安裝程式。
疑難排解和驗證。 為了驗證作業,-whatif 參數可讓系統管理員查看執行作業時會發生什麼動作。 這特別適用于執行同步處理或移轉,當想要在執行變更之前驗證變更。 為了進行疑難排解,-verbose 參數可讓系統管理員取得有關執行中作業的詳細資料,以及在失敗時,診斷問題的能力。
差異同步處理。 此工具只會同步處理來源與目的地之間的變更。
安裝注意事項
規格需求
必須滿足下列必要條件,才能安裝此工具:
- 您必須安裝 .NET 2.0 SP1 或更新版本。
下載並安裝
工具有兩個不同的可下載套件;您必須下載適當的套件:
https://www.iis.net/download/WebDeploy
您必須以系統管理員身分執行安裝套件。 這可以透過下列其中一種方法來完成:
- 使用名為 「Administrator」 的實際帳戶登入伺服器。
- 以滑鼠右鍵按一下 Windows 程式的[配件] 功能表中的 [命令提示字元] 功能表項目,然後選取 [以系統管理員身分執行],然後輸入下列適當命令,以使用具有系統管理員許可權的帳戶並開啟命令提示字元,以執行安裝:
msiexec /I <path_to_msi>
msiexec /I <path_to_msi>
重要注意事項! 根據預設,安裝程式會提供您安裝遠端服務的選項,並使用預設的遠端服務 URL。 http://+:80/MSDEPLOY.
您可以從命令列執行安裝程式,將遠端服務 URL 設定為自訂 URL: (指定埠和 URL 的位置,請自訂) :
msiexec /i <path_to_msi> /passive ADDLOCAL=ALL LISTENURL=http://+:8080/MSDEPLOY2/
已知問題
問題:某些管理服務委派規則無法在 Web Deploy 升級至 Web Deploy 2.0 之後運作
如果 IIS 7+ 伺服器使用共用組態,將 runAs 身分識別設定為 SpecificUser 的特定委派規則將會停止運作。 這是因為 Web Deploy 安裝程式和 .\AddDelegationRules.ps1 腳本會建立本機電腦使用者帳戶,並將其設定為特定委派規則上的 runAs 身分識別。 這些使用者帳戶將無法在其他電腦上辨識,因此規則將無法在共用組態中運作。
因應措施:
- 請勿使用 Web Platform Installer 安裝 Web Deploy 2.0。 相反地,請 直接從 MSI 安裝它,並取消選取 [設定非系統管理員部署] 元件
- 如果您的委派規則已經覆寫,請手動重新建立它們。
問題:使用 .\SetupSite.ps1 PowerShell 腳本建立的網站無法流覽
當此腳本建立網站時,它會嘗試將其指派 8000 到 8200 之間的埠號碼,但尚未取得。 可能是沒有可用的可用埠,在此情況下,指派給此網站的埠將無法運作。 此外,指派給月臺的埠也可能遭到防火牆封鎖。
因應措施: 手動指派月臺與 IIS 管理員 UI 不同的埠。 此外,請確定防火牆未封鎖埠,例如在 Windows Server 2008 R2 上,執行此命令:「netsh advfirewall firewall add rule name=」MySite「 dir=in action=allow protocol=TCP localport=8080」,其中 MySite 會取代為您的網站名稱。
問題: 無法發佈至使用 SetupSiteForPublish.ps1 PowerShell 腳本建立的網站,或透過[設定 Web 部署發佈...] 設定 Web Deploy 發佈Ui
網站建立腳本以及為現有網站設定 Web Deploy 的 UI 會將發佈 URL 設定為 https://myserver:8172/msdeploy.axd
。 此電腦名稱稱通常可在網路內連線。 不過,通常無法從網路外部連線,因此應該以公用 DNS 名稱取代。
因應措施:
- 從腳本:腳本不會警告此錯誤。 以 (正確的 URL 取代 URL,如下列) 產生的設定檔中的) 。
- 從 UI:在 [指定發佈伺服器連線的 URL] 欄位中輸入公用 DNS 名稱,例如,而不是
https://myserver:8172/msdeploy.axd
,輸入https://some.publicDnsName.com:8172/msdeploy.axd
問題:Web 部署耗用 100% 的 CPU 時間幾分鐘
如果記錄層級設定太高,當同步處理作業正在進行時,Web Deploy 將會耗用 100% 的 CPU。 如果記錄層級設定為詳細資訊 (4) 或資訊 (3) ,就會發生這種情況。
因應措施: 將記錄層級設定為較低:
- 啟動登錄編輯程式
- 流覽至HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\2\WMSVCTracing,並視需要將其設定為 1 或 2。
- 開啟提升許可權的命令提示字元,然後輸入 「net stop wmsvc」,然後輸入 「net start wmsvc」 來重新開機 Web 管理服務
問題:IIS 管理員中的 Web Deploy UI 提供「無法轉換類型的物件」錯誤
如果目的地電腦已安裝 Web Deploy v1.1,且來源電腦已安裝 v2,您可能會看到此錯誤。 這是跨版本的不相容。
因應措施:
- 將來源電腦升級至 Web Deploy v2
- 卸載來源電腦上的所有 Web Deploy 版本
問題:Web Deploy 無法從遠端伺服器擷取 USN 號碼
當與 dirPath 提供者搭配使用時,「-incremental」 參數會傳回 USN 號碼,以便與未來的同步處理搭配使用,以允許累加同步處理。
例如:msdeploy -verb:dump -source:dirpath=c:\Temp –incremental
傳回:c:\Temp
資訊:同步處理來源路徑 'c:\Temp' 的 USN 編號是 '2140379512'。
不過,如果來源是遠端的,則作業不會傳回 USN 號碼。 這是已知的限制,因為 Web Deploy v2 不支援從遠端伺服器擷取 USN 號碼。
解決 方案: 使用另一個工具來從遠端伺服器擷取 USN 號碼。
問題: 如果您要將 IIS 6.0 電腦與許多網站同步處理, (導致中繼基底超過 500 MB) ,則工具可能會停止回應。
解決 方案: 建立網站清單,並個別同步處理每個網站。
問題: 如果您要從電腦同步處理至內容或共用設定位於第三部、個別電腦 (也就是 UNC) ,遠端代理程式將無法正確驗證。
解決 方案: 請手動同步處理或使用 Web 部署處理常式。
問題: 如果您嘗試封裝或封存具有某種迴圈的資料夾, (像是您嘗試在封裝) 的資料夾內建立封裝,則工具可能會當機或停止回應。
解決 方案: 請勿同步處理迴圈的資料夾。
問題: 如果您要將網站與超過 100 個子目錄同步處理, (1\2\3..\100\101) 工具可能會停止回應。
解決 方案: 請勿同步處理深度為 120 個子目錄的資料夾結構。
問題: 如果您變更共用組態設定, (例如啟用或停用共用組態) ,則之後必須重新開機遠端代理程式。
解決 方案: 在變更共用組態之後重新開機代理程式。
問題: 如果您要同步處理路徑是 %systemdrive%\wwwroot
目的地網站的目的地網站,其中系統磁片磁碟機不同 (C: 而不是 D:) ,則會在目的地展開您的網站路徑。 這表示如果您已與不同的系統磁片磁碟機共用設定表示,而且依賴 %systemdrive%
以確保內容正常運作,您可能會中斷電腦上的月臺。
解決 方案: 新增取代規則,以在同步處理期間變更路徑。
問題: 如果您要將 IIS 6.0 電腦與許多網站同步處理, (導致中繼基底超過 500 MB) ,則工具可能會停止回應。
解決 方案: 建立網站清單,並個別同步處理每個網站。
問題: 如果您要將 IIS 6.0 中標示為應用程式的資料夾同步處理至封存或封裝,有時不會自動收集內容。
解決 方案: 手動將內容資料夾新增至自訂資訊清單,並同步處理指示清單。 如需建立資訊清單檔的詳細資訊,請參閱說明。
問題: 如果您嘗試封裝至現有的封裝檔案,可能無法正常運作。
解決 方案: 建立新套件之前,請先使用新名稱或刪除舊的套件檔案。
問題: 除非檔案位於網站的內容目錄中,否則 Microsoft Web Deploy 不會移動腳本對應和 Web 服務擴充功能限制清單中所參考專案的實體檔案。 這是因為許多 ISAPI 可能無法正確移轉,例如:
- ASP.NET (需要安裝) 。
- 預設不包含在 Windows Server 2008 中的 WebDAV (,而且需要額外的安裝) 。
- FrontPage Server Extensions (預設不包含在 Windows Server 2008 中,而且需要額外的安裝) 。
解決 方案: 因應措施:手動包含不需要在資訊清單檔中安裝的任何腳本對應或檔案。 如需建立資訊清單檔的詳細資訊,請參閱說明。
問題: 將不會移動根層級Web.config和代碼啟用安全性 (CAS) 原則設定中所參考的自訂信任檔案。
解決 方案: 在資訊清單檔案中手動指定自訂信任檔案和 CAS 原則檔案security.config。 如需建立資訊清單檔的詳細資訊,請參閱說明檔。
問題: 如果您將月臺移至具有不同信任層級的伺服器,則不會收到警告。
解決 方案: 執行月臺層級同步或移轉時,請確定目的地電腦上已正確設定信任層級。
問題: 如果您有指向無效來源的自訂資訊清單檔案,您可能不會收到錯誤。
解決 方案: 如果您在使用資訊清單檔案時看不到預期的輸出,請個別嘗試每個專案以查看它們是否輸入錯誤或無效。
問題: FTP 和 SMTP 不會包含在 webserver60 的預設定義中。
解決 方案: 如果您需要同步處理這些位置,請使用中繼金鑰提供者手動同步處理這些位置,也就是 metakey=lm/msftpsvc。
問題: 繼承的屬性不會隨著 IIS 6.0 月臺移轉而移轉。 常見的範例是在伺服器層級設定驗證,而所有繼承此屬性的網站。 當您移轉單一月臺時,它現在會繼承新目的地伺服器的設定。 如果目的地伺服器設定不相同,您的網站可能會中斷。 這適用于每個繼承的屬性,包括 mime 地圖、腳本對應等。
解決 方案: 當您在 IIS 6.0 上同步或移轉網站時,請使用 metadataGetInherited 旗標,將繼承的設定複製到網站層級。 或者,請確定來源和目的地伺服器上的伺服器設定相同,或手動設定月臺以使用正確的設定。
針對安裝問題進行疑難排解
如果您在安裝期間遇到任何問題,您可以針對您的 Windows 版本執行下列適當命令,以建立包含安裝程式相關資訊的記錄檔:
msiexec /L msdeployinstall.log /I <path_to_msi>
msiexec /L msdeployinstall.log /I <path_to_msi>
您可以在安裝失敗後分析此記錄檔,以協助判斷失敗的原因。
詳細資訊
Web Deploy 的下列額外資源可在 IIS.net 上取得:
- Web Deploy 逐步解說。 描述如何下載並安裝 Web Deploy、如何使用它進行同步處理或移轉作業等等。
- 此外,請務必流覽 Web 部署小組部落格 ,以取得工具的秘訣、訣竅和最新資訊。
© 2007 – 2011 Microsoft Corporation。