2014-11-05 21 views
0

已經複製了bin目錄中,我試圖從的TeamCity構建服務器安裝Topshelf服務到我們的開發服務器,使用的MSBuild & PSEXEC TopShelf服務:無法安裝使用的MSBuild和PSEXEC

<Exec Command="psexec \\$(ServerName) $(ServerBinDirLocal)\$(ProjectName).exe install -displayname $(ApplicationLongName) -description &quot;$(ServiceDescription)&quot; --networkservice --delayed" ContinueOnError="false" /> 

然而,我嘗試任何報價的組合,我總是得到:

The command "psexec \\srv06541wn d:\Bin\Service.DEV\Service.exe install ..." exited with code 9009. 

這是DNS錯誤,很明顯,但我看不出這是問題,因爲我提供一個地方,而不是UNC路徑。生成服務器帳戶是目標服務器上的管理員,所以這應該工作?

回答

2

所以這裏有幾個可能的解決方案,但這不是特別的Topshelf問題。我猜猜9009是謊言。

  1. 第一種可能是您需要psexec的完整路徑。 C:\...\psexec。您可以通過將命令更改爲非常簡單並確保其正常工作來測試。 psexec可能不在TeamCity的路徑上。
  2. 驗證它是否適用於沒有FQDN的主機名。 TeamCity可能與您沒有相同的上下文。
+0

謝謝,特拉維斯。我們可以排除2.因爲我能夠成功複製文件。我認爲問題可能會更多1. - 詢問我不確定PSExec是否安裝。大型安全熱情的企業環境,我仍然試圖進入箱子。 有一些使用SC.exe從同一TeamCity安裝的較舊的Windows服務。我試過重複使用他們的腳本,但服務似乎在啓動時掛起。應該這樣做嗎? – ultra909 2014-11-06 11:06:18

+0

最後一行在日誌文件: 2014年11月6日12:00:23315 [1] DEBUG MassTransit.Transports.RabbitMq.RabbitMqTransportFactory - RabbitMQ的連接創建:thunderrabbitdev:5672 // – ultra909 2014-11-06 11:07:06

+0

可悲的是,它看起來像我唯一的選擇在這個環境中遠程部署/安裝服務是使用SC.exe,所以我必須刪除TopShelf ... – ultra909 2014-11-06 15:31:07