Microsoft Web Deploy v3 自述檔
作者 :不嚴格Mittal
概觀
Web Deploy 是簡化 Web 應用程式、網站和伺服器移轉、管理和部署的工具。 它可以用來封裝網站,自動包括內容、組態、憑證和資料庫。 它可用來在 IIS 6.0、IIS 7.x 和 IIS8.0 之間同步處理,或從 IIS 6.0、IIS7.x 移轉至 IIS 7.x 和更新版本。 建立的套件可用於版本設定、備份或部署。
功能
Web Deploy 包含下列主要功能:
封裝網站和應用程式: 開發人員或系統管理員可以封裝已安裝 Web 應用程式的組態和內容,包括 SQL 資料庫,並使用套件進行記憶體或重新部署。 然後,您可以使用 IIS 管理員介面來部署這些套件,而不需要遠端伺服器上的系統管理許可權。
將部署工作委派給非系統管理員。 伺服器管理員可以選擇將部署工作委派給非系統管理員的使用者。 例如,在共用主機和企業環境中,部署內容並將資料夾標示為應用程式可以委派。 您也可以啟用適用於專用環境的進階工作,例如允許憑證、網站或 GAC 的元件部署。
簡化系統管理員的部署。 伺服器管理員會發現委派很有用,因為部署 Web 應用程式包括 GAC 的元件、憑證和應用程式集區,即使具有所有必要的許可權,也相當耗時。
從 IIS 6.0 和 IIS7 移轉: 移轉作業提供系統管理員將網站或整個伺服器從 IIS 6.0 移轉至 IIS 7 和更新版本的方式,IIS7 到 IIS8,包括其設定和內容。 移轉基本上是同步處理的方式,由移轉規則篩選。
IIS 6.0 / IIS 7/IIS8.0 的同步處理 同步作業可讓系統管理員快速同步處理月臺或伺服器,並將變更部署至現有的月臺和伺服器。 同步處理可讓您同步處理一個來源與一個目的地。 例如,您可以同步處理兩個目錄路徑或兩部網頁伺服器。 同步處理可以與本機或遠端物件一起執行。
快照集 IIS 7.0 和更新版本 快照集或封存功能可讓系統管理員或開發人員快速擷取其網站或伺服器的封存,以進行復原、還原或備份。 自動快照集功能也可讓網站管理員自行服務上述部分工作。
分析 IIS 6.0 和更新版本的相依性 分析作業可讓系統管理員檢查來源伺服器上已安裝哪些元件。 如此一來,他們就可以判斷 IIS 7.0 中是否需要的功能,或是需要比直接複製檔案更進階的設定。
疑難解答和驗證。 為了驗證作業,-whatif 參數可讓系統管理員查看執行作業時會發生什麼動作。 這特別適合用來執行同步或移轉,當他們想要先驗證要進行哪些變更,再執行變更。 為了進行疑難解答,-verbose 參數可讓系統管理員取得有關執行哪些作業和失敗的豐富詳細數據,以及診斷問題的能力。
差異同步處理。 此工具只會同步處理來源與目的地之間已變更的內容。
透過PowerShell輕鬆編寫腳本: 常見的 Web 部署工作可以使用 PowerShell Cmdlet 來自動化。
安裝注意事項
規格需求
必須滿足下列必要條件,才能安裝此工具:
·您必須安裝 .NET 2.0 SP1 或更新版本。
下載並安裝
工具有兩個不同的可下載套件;您必須下載適當的套件。 您可以下載 (x86) 或 (x64) 版本。
此版本中已修正的重要問題:
改變: 在舊版的 Web 部署中,tempAgent 服務一律會在埠 80 上執行。 在 Web Deploy v3 RC 中,您可以藉由使用 computername=serverName:## 格式指定 computername 自變數中的新埠來變更此埠,tempagent=true (其中 #### 是要使用的埠號碼)
改變: 已修正使用 -useCheckSum 選項時,Web Deploy 的變更計數不精確-whatif 作業的問題。
變更:Web Deploy V3 自動停用 Proxy 設定。 這先前是某些客戶端的問題,這些用戶端在開始同步處理之前必須開啟 Internet Explorer 並停用 Proxy 設定。
變更:新增了憑證同步邏輯中 IPv6 樣式系結的支援。 舊版無法正確同步處理 IPv6 系結。
變更:將子登錄機碼同步處理至父登錄機碼不存在的伺服器時,現在會建立子機碼的父登錄機碼 (沒有值) ,而不是同步失敗。 例如,如果同步登錄機碼 HKEY_LOCAL_MACHINE\SOFTWARE\MySoft\TestWeb1 目的地電腦上不存在 MySoft 機碼,則會在允許同步處理的目的地電腦上建立 MySoft 機碼。
改變: 在某些情況下,Web Deploy 發佈已移除月臺根資料夾的繼承許可權。 Web Deploy V3 修正此問題。
已知問題
問題: Web Deploy v3 升級會中斷使用 Web Deploy v2 運作的 SQLite 同步處理
Web Deploy v3 可執行文件的預設組態檔 (msdeploy.exe.config 和 msdepsvc.exe.config) 已從 .Net 2.0 更新為 .Net 4.0,這會導致此中斷。
因應措施:
- SQLite 有 .Net 4 兼容版本。 從%ProgramFiles%\IIS\Microsoft Web Deploy V3“ 目錄中從此版本複製 sqlite3.exe 將會解決此問題。
- 將 WebDeploy V3 的預設 .Net 版本 msdeploy.exe.config 變更為 .Net 2.0,如下所示
<configuration>
<startup>
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />
</startup>
</configuration>
問題: Web Deploy Agent 服務不適用於不是系統管理員用戶帳戶的本機用戶帳戶,而是 Administrators 群組的成員。 傳回ERROR_USER_NOT_ADMIN錯誤。
遠端代理程式服務接受內建的系統管理員或網域系統管理員認證 , 任何其他系統管理員認證將無法運作,而且將會導致此錯誤。
因應措施:
使用本機計算機上系統管理員群組的內建系統管理員帳戶或網域用戶帳戶 (一部分) 。遠端代理程式服務接受內建的系統管理員或網域管理員認證。 如果您有非網域設定,而且想要使用內建系統管理員的其他帳戶,請執行下列動作:
- 在遠端電腦上建立個別的使用者群組 MSDepSvcUsers。
- 在本機 & 遠端電腦上建立本機帳戶 A。
- 將 A 新增至遠端電腦上的 MSDepSvcUsers。
- 使用帳戶 A 進行發佈,這可讓您發佈,而不需要使用內建的系統管理員帳戶。
問題: 某些管理服務委派規則無法在 Web Deploy 升級至 Web Deploy 3.0 之後運作
如果 IIS 7+ 伺服器使用共用設定,則將 runAs 身分識別設定為 SpecificUser 的特定委派規則將會停止運作。 這是因為 Web Deploy 安裝程式和 .\AddDelegationRules.ps1 腳本會建立本機計算機用戶帳戶,並將其設定為特定委派規則上的 runAs 身分識別。 這些用戶帳戶在其他計算機上將無法辨識,因此規則無法在共用設定中運作。
因應措施:
·如果您的委派規則已經覆寫,請手動重新建立受影響的規則。
問題: 無法發佈至使用 SetupSiteForPublish.ps1 PowerShell 腳本建立的網站,或透過「設定 Web 部署發佈...」設定 Web Deploy 發行Ui
網站建立文稿,以及設定現有網站之 Web Deploy 的 UI 會將發布 URL 設定為 https://myserver:8172/msdeploy.axd
。 此 computername 通常可在網路內連線。 不過,通常無法從網路外部連線,因此應該以公用 DNS 名稱取代它。
因應措施:
- 從文稿:腳本不會警告此錯誤。 以正確的 URL 取代 URL,如下列 () 產生的配置檔中的) 。
- 從 UI:在 [指定發佈伺服器連線的 URL] 字段中輸入公用 DNS 名稱,例如 ,而不是
https://myserver:8172/msdeploy.axd
輸入https://some.publicDnsName.com:8172/msdeploy.axd
。
問題:使用 Web Deploy V3 建立的套件不適用於 WebDeploy V2。 這會導致 System.NullReferenceException。
因應措施:
- 將目標計算機升級至 Web Deploy v3
- 使用 Web Deploy V2 來建立套件。
問題:IIS 管理員中的 Web Deploy UI 提供「無法轉換類型的物件」錯誤
如果目的地計算機已安裝 Web Deploy v1.1,且來源電腦已安裝 v2,您可能會看到此錯誤。 這是跨版本的不相容。
因應措施:
- 將來源計算機升級至 Web Deploy v2
- 卸載來源計算機上的所有 Web Deploy 版本
問題: 如果您要同步處理 IIS 6.0 計算機與許多網站 (導致中繼基底超過 500 MB) ,則工具可能會停止回應並停止回應。
因應措施:
建立網站清單,並個別同步處理每個網站。
問題: 如果您要從計算機同步至位於第三部、個別電腦 (,也就是 UNC) ,遠端代理程式將無法正確驗證內容或共用設定的遠端電腦。
因應措施:
請手動同步處理或使用 Web 部署處理程式。
問題: 如果您變更共享組態設定 (,例如啟用或停用共用組態) ,您之後將需要重新啟動遠端代理程式。
因應措施:
在變更共享組態之後重新啟動代理程式。
問題: 如果您要同步處理路徑為 %systemdrive%\wwwroot
目的地網站的網站,其中系統磁碟驅動器不同 (C:而不是 D:) ,則您的網站路徑將會在目的地展開。 這表示如果您已與不同的系統磁碟驅動器共用設定表示,而且您依賴 %systemdrive%
以確保內容正常運作,您可能會在機器上中斷網站。
因應措施:
新增取代規則,以在同步處理期間變更路徑。
問題: 如果您嘗試封裝至現有的套件檔案,可能無法正常運作。
因應措施:
在建立新套件之前,請先使用新名稱或刪除舊的套件檔案。
問題: 除非檔案位於網站的內容目錄中,否則 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提供者手動同步這些位置- 也就是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 部署逐步解說。 說明如何下載並安裝 Web Deploy、如何將其用於同步處理或移轉作業等等。
- 此外,請務必流覽 Web 部署小組部落格 ,以取得工具的秘訣、訣竅和最新資訊。