選擇 Web 部署的正確方法
當您使用 Internet Information Services (IIS) Web 部署工具 (Web Deploy) 2.0 或更新版本時,有三種主要方法可用來將封裝的 Web 應用程式放入網頁伺服器上。 您可以:
- 以Web Deployment Agent Service (也稱為目的地伺服器上的「遠端代理程式」) 為目標,從遠端位置部署應用程式。
- 使用 Web Deploy On Demand (也稱為「暫存代理程式」) ,從遠端位置部署應用程式。
- 以目的地伺服器上的 IIS Web 部署處理常式 為目標,從遠端位置部署應用程式。
- 手動將 Web 套件複製到目的地伺服器,然後透過 IIS 管理員匯入應用程式,以部署應用程式。
設定目的地 Web 服務器的方式將取決於您想要使用的部署方法。 本主題將協助您決定適合您部署的方法。
下表顯示每個部署方法的主要優點和缺點,以及最符合每個方法的案例。
方法 | 優點 | 缺點 | 典型案例 |
---|---|---|---|
遠端代理程式 | 很容易設定。 它適用于 Web 應用程式和內容的定期更新。 | 使用者必須是目標伺服器上的系統管理員。 使用者無法提供替代認證。 | 開發環境。 測試環境。 |
暫存代理程式 | 不需要在目的電腦上安裝 Web Deploy。 會自動使用最新版本的 Web Deploy。 | 使用者必須是目標伺服器上的系統管理員。 使用者無法提供替代認證。 | 開發環境。 測試環境。 |
Web 部署處理常式 | 非系統管理員使用者可以部署內容。 它適用于 Web 應用程式和內容的定期更新。 | 設定更為複雜。 | 預備環境。 內部網路生產環境。 裝載的環境。 |
離線部署 | 設定非常簡單。 它適用于隔離的環境。 | 伺服器管理員每次都必須手動複製和匯入 Web 套件。 | 網際網路面向的生產環境。 隔離的網路環境。 |
使用遠端代理程式
當您在目的地伺服器上使用預設設定安裝 Web Deploy 時,會自動安裝並啟動「遠端代理程式」) (Web Deployment Agent服務。 根據預設,遠端代理程式會在此位址公開 HTTP 端點:
http://[server]/MSDEPLOYAGENTSERVICE
注意
您可以將 [server] 取代為網頁伺服器的電腦名稱稱、網頁伺服器的 IP 位址,或解析為網頁伺服器的主機名稱。
伺服器管理員可以藉由指定此端點位址,從遠端位置部署 Web 套件,例如開發人員電腦或組建伺服器。 例如,假設 Matt Hink at Fabrikam, Inc. 已在其開發人員電腦上建置 ContactManager.Mvc Web 應用程式專案。 建置程式會產生 Web 套件,以及包含安裝套件所需的 Web Deploy 命令的 .deploy.cmd 檔案。 如果 Matt 是 TESTWEB1 伺服器上的伺服器管理員,他可以在開發人員電腦上執行此命令,將 Web 應用程式部署至測試網頁伺服器:
ContactManager.Mvc.deploy.cmd /y /m:http://TESTWEB1/MSDEPLOYAGENTSERVICE a/:NTLM
事實上,如果您提供電腦名稱稱,Web Deploy 可執行檔可以推斷遠端代理程式的端點位址,因此 Matt 只需要輸入下列專案:
ContactManager.Mvc.deploy.cmd /y /m:TESTWEB1 /a:NTLM
注意
如需 Web Deploy 命令列語法和 .deploy.cmd 檔案的詳細資訊,請參閱 如何:使用 deploy.cmd 檔案安裝部署套件。
遠端代理程式提供直接的方式,可從遠端位置部署內容,而且此方法可以搭配單鍵或自動化部署運作。 不過,執行部署命令的使用者也必須是目的地伺服器上本機系統管理員群組的成員。 此外,遠端代理程式不支援基本驗證,因此您無法在命令列上傳遞替代認證。
遠端代理程式提供在開發或測試案例中部署的實用方法,其中開發人員對測試伺服器環境擁有完全系統管理員控制並不常見,而且應用程式通常會非常頻繁地重建和重新部署。 不過,對於預備或生產環境而言,這種方法通常較不可接受的。
如需使用遠端代理程式方法之案例的端對端範例,請參閱 案例:設定 Web 部署的測試環境。
使用暫存代理程式
部署的暫存代理程式方法類似于遠端代理程式方法。 不過,相較于遠端代理程式方法,您不需要在目的地 Web 服務器上安裝 Web Deploy。 相反地,當您執行部署時,Web Deploy 會在目的地伺服器上安裝 Web 部署代理程式服務的暫存版本,並使用此版本將內容部署至 IIS。 部署完成時,會移除所有暫存檔。
如果您想要使用臨時代理程式提供者設定,請將 /g 旗標新增至您的部署命令:
ContactManager.Mvc.deploy.cmd /y /m:TESTWEB1 /g:true
注意
如果 Web 部署代理程式服務安裝在目的地電腦上,即使服務未執行,您也無法使用暫存代理程式。
這種方法的優點是,您不需要在目的地伺服器上維護 Web Deploy 的安裝。 此外,您不需要確保來源和目的地電腦執行的是相同版本的 Web Deploy。 不過,這種方法與遠端代理程式方法具有相同的主體限制,也就是您必須是目的地伺服器上的本機系統管理員,才能部署內容,而且僅支援 NTLM 驗證。 暫存代理程式方法也需要更初始的目的地環境設定。
如需使用暫存代理程式的詳細資訊,請參閱 如何:使用 deploy.cmd 檔案 和 Web Deploy 隨選安裝部署套件。
使用 Web 部署處理常式
針對 IIS 7 之後,Web Deploy 會透過 IIS Web 部署處理常式提供替代的部署方法。 Web 部署處理常式與 IIS Web Management Service (WMSvc) 緊密整合,其設計目的是允許使用者從遠端位置管理 IIS 網站。
根據預設,遠端代理程式會在此位址公開 HTTP 端點:
https://[server]:8172/MSDeploy.axd
注意
您可以將 [server] 取代為網頁伺服器的電腦名稱稱、網頁伺服器的 IP 位址,或解析為網頁伺服器的主機名稱。
Web 部署處理常式在遠端代理程式和暫存代理程式上的主要優點是您可以設定 IIS,以允許非系統管理員使用者將應用程式和內容部署至特定 IIS 網站。 Web 部署處理常式也支援基本驗證,因此您可以在 Web Deploy 命令中提供替代認證作為參數。 主要缺點是 Web Deploy 處理常式一開始會比設定和設定更為複雜。
如果是非系統管理員使用者,Web Management Service (WMSvc) 只會允許使用者使用月臺層級連線來連線到 IIS,而不是伺服器層級連線。 若要存取特定網站,您可以在端點位址中包含網站特定的查詢字串:
https://[server]:8172/MSDeploy.axd?site=DemoSite
建議 例如,假設建置程式已設定為在每個成功建置之後自動將 Web 應用程式部署到預備環境。 如果您使用遠端代理程式方法,您必須讓建置程式身分識別成為目的地伺服器上的系統管理員。 相反地,使用 Web Deploy 處理常式方法,您可以為非系統管理員使用者提供 FABRIKAM\stagingdeployer ,在此情況下,只有特定 IIS 網站的許可權,而建置程式可以提供這些認證來部署 Web 套件。 請注意,下列範例使用 %ContactManagerPublishPassword%
,它會從環境變數提取密碼值。 若要成功執行腳本, %ContactManagerPublishPassword%
變數必須以正確的值定義。
msdeploy.exe
-source:package='…\ContactManager.Mvc.zip'
-dest:auto,
computerName='https://STAGEWEB1:8172/MSDeploy.axd?site=DemoSite',
userName='FABRIKAM\stagingdeployer',
password=%ContactManagerPublishPassword%,
authtype='Basic',
-verb:sync
-setParamFile:"…\ContactManager.Mvc.SetParameters.xml"
-allowUntrusted
注意
如需 Web Deploy 命令列作業和語法的詳細資訊,請參閱 Web Deploy 命令列參考。 如需使用 .deploy.cmd 檔案的詳細資訊,請參閱 如何:使用 deploy.cmd 檔案安裝部署套件。
Web 部署處理常式提供在預備環境、託管環境和內部網路型生產環境中部署的實用方法,其中可遠端存取服務器,但系統管理員認證不是。
如需使用 Web 部署處理常式方法之案例的端對端範例,請參閱 案例:設定 Web 部署的預備環境。
使用離線部署
在某些情況下,從遠端位置將應用程式和內容部署至 IIS 網站並不容易或實用。 例如,來源和目的地電腦可能位於隔離的網路或網路區段中,或防火牆原則可能不允許遠端存取。
在這些案例中,您仍然可以使用 Web Deploy 的封裝和發佈功能;您只能從遠端位置使用它們。 相反地,目的地伺服器上的系統管理員必須將 Web 套件複製到伺服器,然後透過 IIS 管理員匯入。
離線部署方法通常適用于網際網路面向的生產環境,其中周邊網路中的伺服器可能會限制與內部網路中電腦的連線。
如需使用離線部署方法之案例的端對端範例,請參閱 案例:設定 Web 部署的生產環境。
深入閱讀
如需 Web Deploy 命令列作業和語法的詳細資訊,請參閱 Web Deploy 命令列參考。 如需使用 .deploy.cmd 檔案的詳細資訊,請參閱 如何:使用 deploy.cmd 檔案安裝部署套件。
如需您可以從遠端電腦部署 Web 套件之不同方式的更一般指引,請參閱 從遠端使用 Web Deploy。 如需使用 Web Deploy 隨選的詳細資訊,請參閱 Web Deploy On Demand。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應