簡體   English   中英

ws2012r2 主機上的 Web 部署 3.6,從 VS 2015 部署失敗並出現 401 錯誤

[英]Web Deploy 3.6 on ws2012r2 host, deploy from VS 2015 fails with 401 error

這是使用 Web Deploy 3.6,在 Windows Server 2012 R2 機器上配置並運行正確配置的遠程管理服務,在使用 Windows 10 的開發人員 PC 上運行 Visual Studio 2015,並從 IDE 中調用的 Web Deploy 進行部署。 (更新:看來 http 是問題所在,Web Deploy 不適用於 http。)

這與有關 Web 部署因 401 錯誤而失敗的其他問題略有不同,因為錯誤僅發生在真正的部署期間,而不是在“驗證連接”期間。

已嘗試針對其他兩個類似問題發布的所有解決方案。 有一個注冊表黑客(UAC 問題)和其他一些事情。 有要檢查的本地文件系統權限。

使用 Web Deploy 3.6 的 Windows Server 2012 R2 上的 IIS 必須有一些新的技巧,才能使這項“出色的”技術同意工作。

現在是 2016 年,Web Deploy 一如既往地令人氣憤。

網絡部署你沒有工作?

Web Deploy 3.6 和之前的版本似乎有數百個主要問題,其中許多歸結為具有未記錄的要求,例如https基本上是必需的,以及諸如msdeploy類的各種位具有msdeploy復雜的命令行語法。

我在 Visual Studio 中嘗試了 Web Deploy,它在 Azure 上的生產系統上工作,但在我的內部開發系統上失敗了。

它似乎可用於具有來自 Visual Studio IDE 內部的有效簽名證書的系統,如果您想部署到開發人員 IIS 框,請確保系統正在偵聽 https。 如果您使用自簽名證書,則可能需要使用此解決方法,它允許您從 CI 系統或開發人員命令行進行部署:

  1. 將 https 綁定添加到您的開發或部署服務器站點的綁定。

  2. 只能通過 webdeploy 推送 https,使用 http 時往往會失敗。

  3. 如果您沒有有效的可信證書(例如自簽名證書),您可以在下面的命令中添加 -allowUntrusted。

  4. 找到 msdeploy 命令語法,因為它打印在 Visual Studio IDE 的輸出面板中,它會是這樣的,然后修改它。

請不要以純文本形式存儲憑據。 我在 CI 系統中使用批處理文件,我的機密存儲在 CI 系統中,並使用%ENVIRONMENT_VARIABLE%語法注入批處理文件。

——

  "C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" 
  -source:manifest='C:\Users\...\SourceManifest.xml' 
  -dest:manifest='C:\Users\...\DestinationManifest.xml',
  ComputerName='https://192.168.215.141:8172/msdeploy.axd
  ?site=something',UserName='something',
  Password='something',IncludeAcls='False',AuthType='Basic' 
  -verb:sync -enablerule:AppOffline -enableRule:DoNotDeleteRule 
  -retryAttempts:20 -allowUntrusted

從命令行(或您自己的批處理文件),即使在 Visual Studio IDE 中仍然失敗,上述內容也對我有用。 如果有辦法讓 Web 部署在 Visual Studio IDE 中實際運行,這個問題仍然存在。

我現在已經使用試用版 Windows Server 2016 vm 和 Windows Server 2012 r2 對此進行了測試,在我看來,Web 部署 3.6 剛剛損壞,沒有任何部分比 Visual Studio 的向導/視覺發布部分更損壞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM