CruiseControl.NET запускается как служба Windows и как отдельный процесс ведет себя по-разному - PullRequest
1 голос
/ 10 мая 2010

У меня есть проект, который строится с использованием CruiseControl.NET. Проект содержит «задачу MSBuild», которая запускает сборку для проекта, а также модульные тесты. В свою очередь, модульный тест - это просто задача exec для MSBuild, которая запускает исполняемый файл.

В модульном тесте используется удаленное взаимодействие .NET. И когда модульные тесты запускаются из командной строки системы, открывается окно программного обеспечения, тесты запускаются, и процесс завершается.

Когда я форсирую сборку через веб-панель мониторинга, сборка зависает в точке, где начинается модульный тест. Окно программного обеспечения не открывается, но исполняемый файл запущен. Если процесс завершается через обозреватель задач, сборка проходит со статусом «Сбой». Это происходит, когда я запускаю ccnet как службу Windows.

Если я запускаю CCNet напрямую (не в качестве службы Windows) и запускаю сборку через веб-панель мониторинга, сборки и модульные тесты проходят нормально, как и ожидалось. (с открывающимся окном программного обеспечения.)

Похоже, что в случае, когда CCNet запускается как служба Windows, существует тупик. Я предполагаю, что это связано со стандартными потоками вывода / ошибок.

  1. Это известная проблема?

  2. В чем может быть проблема?

  3. Есть предложения по отладке?

  4. Как мне обойти это?

(я использую CCNet версии 1.4.4 SP1)

Ответы [ 2 ]

1 голос
/ 10 мая 2010

Когда CCNet работает как служба, у нее не будет доступа к дисплею, поэтому не ожидайте увидеть что-либо на экране в этой конфигурации. Первое, что я хотел бы проверить, - это разрешения - убедитесь, что служба работает как учетная запись, у которой есть разрешения на доступ к любым необходимым вам ресурсам. У вас также есть файлы журнала CCNet, которые вы можете найти через Dashboard.

Кстати, попробуйте TeamCity вместо CCNet, на 10 лет вперед.

0 голосов
/ 10 мая 2010

Может быть, этот ответ поможет: Служба Delphi Windows не может загрузить файл из интернета

Вы должны знать, что при запуске CCNet в качестве приложения (dosbox) он использует переменные среды и все права из зарегистрированной учетной записи . Поэтому он может подключаться к серверу, использовать кэшированные пароли, получать переменные реестра для этой учетной записи.

НО при запуске в качестве службы вы предоставляете учетную запись: LocalSystem for exampe, где env. варибалы не одинаковы.

Итак, вы можете изменить учетную запись службы CCNet для проверки. Измените его на свою учетную запись пользователя (с паролем), и я уверен, что он будет работать лучше!

...