2013-05-13 261 views
3

我有一臺機器[A]運行全新安裝的Win2008 R2,它在IIS上擁有一個webapp。我嘗試在機器上使用命令行工具msdeploy [B]將部署包發佈到本機,但我一直在獲取有關證書的錯誤。 我正在使用-allowuntrusted,但它仍然一直給出相同的錯誤。msdeploy:allowuntrusted被忽略

我一直在嘗試不同的東西(像IIS改變msdeploy端口,在另一臺機器上安裝證書,重新安裝IIS角色,噸等)2天現在絕對沒有運氣。

這是我跑:

msdeploy.exe -verb:sync -source:package="Web.zip" -dest:auto,ComputerName="https://machineA:8173/msdeploy.axd?site=app.com",UserName="AdminUser",Password="SecurePassword",AuthType="Basic" -allowUntrusted 

爲了讓事情更有趣,這是我所得到的,當我運行含有IIS機器上相同的命令(甚至改變DEST同步後):

Error: A '-dest' argument must be specified with the 'sync' verb. 
Error count: 1. 

任何想法?

編輯: 我嘗試在Visual Studio 2012中使用相同的設置(IP,包,身份驗證)來創建部署的發佈配置文件。點擊「驗證連接」後,我彈出一個詢問是否要接受這個不受信任的證書。我點擊是,然後繼續發佈 - 這一切都很好。

是否有一種方式來獲得與msdeploy命令行這種行爲?使用VS2012不是我的選擇,因爲發佈必須自動完成。

編輯2: 樂趣繼續:它的工作原理另一個Windows Server 2008 R2的目標機器(不乾淨的安裝雖然)上。那麼,魔術複選框在哪裏? :)

回答

4

所以,我設法弄清楚2個解決方案:

  1. 獲得有效證書(我們有一個在公司,所以與主機玩弄機[B]上與公司的匹配IP域名,幫助)。

  2. 地方 「-allowUntrusted:真正的」 BEFORE 「-dest」,而不是結尾。不知道爲什麼它在一臺機器上工作,而不是另一臺機器上。

希望這可以幫助別人,以節省一些時間:)

+2

-allowUntrusted可以放在任何地方。如果它在「-dest」之前工作,那麼這意味着你有雙引號或連字符本身的問題,這使得msdeploy.exe不能看到傳遞給它的allowuntrusted。如從Word doc或Outlook電子郵件複製的連字符 – 2013-05-14 16:15:46

1

我看到一些問題命令:

除非你已經改變了默認的端口,你應該使用8172,而不是8173.

其次有securepassword但我不前的雙引號看到一個最後的雙引號。

你的包最有可能對您必須在部署過程中指定值一些默認參數。

msdeploy.exe -verb:sync -source:package="Web.zip" -dest:auto,ComputerName=https://machineA:8172/msdeploy.axd?site=app.com,UserName="AdminUser",Password="SecurePassword",AuthType="Basic" -allowUntrusted -setParam:paramname=value 
+0

我在試圖使事情工作改變了口。由於我獲得證書而不是「目的地不可達」錯誤,因此我假設連接經歷的很好。甚至通過註冊表查看端口更改是否適用於任何地方。 雙引號:對不起,我的錯。修正了原來的問題,報價也出現在真正的查詢中(只是檢查了腳本)。 至於其他參數,我在構建部署包(使用msbuild和一堆參數)時指定了它們,因此我不在此處添加其他任何內容。 正如我所說,這個命令在另一臺機器上工作。 – Elena 2013-05-14 06:16:30