CruiseControl.NET работает с Psexec

У меня странная проблема при использовании CC.NET с psexec.

По сути, я дублирую сервер сборки, за исключением нескольких изменений имени на каждом. Оба являются виртуальными машинами. Первый сервер работает отлично, но почти идентичный проект на втором не завершает сборку CC.NET. Это происходит после перехода к той части конфигурации сервера CC.NET, которая запускает командный файл с помощью команды psexec.

Команда psexec проста и служит для запуска exe-файла, который представляет собой автоматический тестовый пример Ranorex. Тестовый пример должен выполняться в сеансе текущего пользователя (сеанс 1), чтобы компоненты пользовательского интерфейса были видны (это ограничение 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?


person Zolt    schedule 19.10.2011    source источник
comment
Вы используете ccnet под одной и той же учетной записью на обоих серверах?   -  person Pedro    schedule 20.10.2011


Ответы (1)


У PSExec всегда была такая проблема "зависания", одним из решений которой было перенаправление вывода на> nul.

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

person manojlds    schedule 19.10.2011
comment
Сборка по-прежнему зависает, когда доходит до исполняемой части (то есть команды psexec). Я изменил команду на psexec \\ ‹server› -i 1 ›nul cmd / c C: \ Users \ build \‹ путь к exe ›, но все та же проблема. - person Zolt; 21.10.2011
comment
Проблема заключалась в том, что psexec запускался службой CC.NET. Эта служба работала в сеансе 0, в то время как моя учетная запись была в сеансе 1. В результате диалог с просьбой принять условия при первом запуске psexec был мне не виден. После изменения свойств службы на Разрешить службе взаимодействовать с рабочим столом я смог переключаться между сеансами, щелкать соглашение, переключаться обратно на сеанс и завершать выполнение исполняемого файла. - person Zolt; 02.11.2011