2011-10-19 67 views
0

我有一個使用CC.NET與psexec的奇怪問題。CruiseControl.NET與Psexec攤位

我基本上覆制了一個構建服務器,除了每個名稱更改。兩者都是虛擬機。第一臺服務器效果很好,但第二臺服務器上幾乎完全相同的項目並沒有完成CC.NET的構建。在進入使用psexec命令觸發批處理文件的CC.NET服務器配置部分之後,會發生這種情況。

psexec命令很簡單,用來觸發一個exe文件,這是一個Ranorex自動化測試用例。測試用例需要在當前用戶的會話(會話1)中運行,以便UI組件可見(這是一個Ranorex約束)。

這是命令:

psexec \\<server name> -i 1 cmd /c C:\Users\build\<path to exe> 

的操作系統是Windows 7,Ranorex是3.1和CC.NET和PSEXEC是最新的版本,因爲這日期。

從CC.NET構建日誌輸出如下(這只是最後部分):

<buildresults> 
    <message level="Error">PsExec v1.98 - Execute processes remotely</message> 
    <message level="Error">Copyright (C) 2001-2010 Mark Russinovich</message> 
    <message level="Error">Sysinternals - www.sysinternals.com</message> 
</buildresults> 

這似乎是從PSEXEC輸出。我可以得到這個日誌的唯一方法是,如果我強制CC.NET放棄構建在這一點是掛起。任何人有任何想法,爲什麼構建掛在psexec部分?

+0

您是否在兩臺服務器上的同一帳戶下運行ccnet? – Pedro

回答

1

PSExec一直存在這樣的「掛起」問題,其中一個解決方案是您必須將輸出重定向到> nul。

http://forum.sysinternals.com/psexec-always-hangs-when-run-from-java_topic5013.html

+0

構建在到達可執行部分時仍然掛起(即,psexec命令)。我將命令更改爲psexec \\ -i 1> nul cmd/c C:\ Users \ build \ 但仍然是同樣的問題。 – Zolt

+0

問題是,psexec是由CC.NET服務觸發的。此服務在會話0下運行,而我的帳戶在會話1下。因此,第一次運行psexec時要求我接受條款的對話對我而言不可見。將服務屬性修改爲「允許服務與桌面交互」後,我可以在會話之間切換,單擊協議,切換回會話並完成可執行文件。 – Zolt

+1

@Larry - 還有'/ accepteula'標誌。 – manojlds