CruiseControl.NET не может быть установлено соединение? - PullRequest
9 голосов
/ 30 марта 2011

Я настраиваю CruiseControl.NET и получаю следующее сообщение об ошибке на веб-панели:

No connection could be made because the target machine actively refused it 127.0.0.1:21234

URL, который он ищет: tcp://localhost:21234/CruiseManager.rem
Однако на веб-сайте ccnet в IIS порт tcp установлен на 82.
Поэтому я использую следующий URL для перехода на веб-панель управления http://127.0.0.1:82/ccnet/ViewFarmReport.aspx

Я попытался изменить порт Tcp в IIS на 21234, и я получил следующее сообщение об ошибке на веб-панели:

Tcp channel protocol violation: expecting preamble.

Я также попытался открыть порт с помощью следующей команды:

netsh firewall add portopening TCP 21234 CCNET

Когда я пытаюсь запустить службу CCNET, я получаю следующее сообщение

The CruiseControl.NET Server service started then stopped. Some services stop automatically if they have no work to do....

Может кто-нибудь помочь мне с этой проблемой, пожалуйста?

EDIT - Добавление файла конфигурации

<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<cb:define PublishDir="C:\Deploy\Portal2.0Build"/>

    <project name="Portal2.0">
      <workingDirectory>C:\PortalCruiseControl\Working</workingDirectory>
      <artifactDirectory>C:\PortalCruiseControl\Artifacts</artifactDirectory>
      <webURL>http://192.168.17.59:82/ccnet</webURL>
      <triggers>
        <intervalTrigger name="continuous" seconds="10"
               buildCondition="IfModificationExists"/>                              
      </triggers>
      <sourcecontrol type="svn">                                            
        <trunkUrl>https://portal2003.local:8443/svn/portalv2.0/trunk</trunkUrl>                
        <executable>C:\Program Files (x86)\VisualSVN Server\bin\svn.exe</executable>           
        <username>ccnet</username>                                         
        <password>***</password> 
        <cleanCopy>true</cleanCopy>
      </sourcecontrol>
      <tasks>
        <msbuild>
            <executable>                                                      
                C:\WINDOWS\microsoft.net\Framework64\v3.5\MSBuild.exe                                              
            </executable> 
            <projectFile>Portal2.0.sln</projectFile>  
            <buildArgs>
                /target:build;publish /p:Configuration=Release /p:MSBuildExtensionsPath=C:\Progra~2\MSBuild /p:MSBuildEmitSolution=1 /p:publishdir=C:\Deploy\Portal2.0Build /verbosity:diag
            </buildArgs>                                                      
            <logger>
                C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll
            </logger>
        </msbuild>
      </tasks>
        <labeller type="assemblyVersionLabeller">
          <major>2</major>
          <minor>0</minor>
          <incrementOnFailure>false</incrementOnFailure>
        </labeller>
      <publishers>
        <statistics />
        <xmllogger />
        <package>
          <name>ZipFilePublish</name>
          <compression>9</compression>
          <always>false</always>
          <flatten>false</flatten>
          <baseDirectory>$(PublishDir)</baseDirectory>
          <dynamicValues>
              <replacementValue property="name">
                <format>C:\Deploy\Builds\PortalBuild{0}.zip</format>
                <parameters>
                  <namedValue name="$CCNetLabel" value="Default" />
                </parameters>
              </replacementValue>
          </dynamicValues>
          <files>
            <file>*.*</file>
            <file>**\*</file>
          </files>
        </package>
          <email from="bla" mailhost="bla" port="25" userName="bla" 
                        password="bla"  includeDetails="TRUE" useSSL="FALSE"> 
            <users>
              <user name="User1" group="Portal" address=""/>
            </users>
            <groups>
              <group name="Portal">
                <notifications>
                    <notificationType>change</notificationType>
                </notifications>
              </group>
            </groups>
          </email>
    </publishers>
    </project>  

Ответы [ 7 ]

17 голосов
/ 31 марта 2011

Первое сообщение об ошибке, вероятно, вызвано тем, что служба CCNET не работает, из-за которой веб-панель не может подключиться к ней.Он должен исчезнуть, как только вы исправите ccnet.config, чтобы служба начала работать.

Вторая проблема («Недопустимые символы в пути»; вы, похоже, уже выяснили часть отсутствующих узлов) вызвана msbuild / исполняемый элемент .Кажется, что CC.NET не любит пробелы и особенно символы новой строки внутри его значения.Замена:

<executable>                                                      
    C:\WINDOWS\microsoft.net\Framework64\v3.5\MSBuild.exe
</executable> 

на:

<executable>C:\WINDOWS\microsoft.net\Framework64\v3.5\MSBuild.exe</executable> 

должна решить проблему.

Еще один совет: если у вас возникают проблемы с действительностью вашего ccnet.configфайл, попробуйте использовать CCValidator.exe (он находится в папке CruiseControl.NET \ server).Обычно он довольно хорошо указывает на проблемную часть файла конфигурации (хотя это не относится к проблеме «Недопустимые символы в пути» - мне пришлось закомментировать определенные части конфигурации, чтобы найти узел, который нарушил работу).

0 голосов
/ 15 апреля 2016

В моем случае я опечатал имя файла конфигурации проекта в ccnet.config вместо timescheduler.config, это было timesheduler.Когда я исправил имя файла, я смог запустить службу ccnet.

<cruisecontrol xmlns:cb="urn:ccnet.config.builder">     
    <cb:include href="definitions.xml" xmlns:cb="urn:ccnet.config.builder"/> 
    <cb:include href="projects/timescheduler.config" xmlns:cb="urn:ccnet.config.builder"/>
</cruisecontrol>
0 голосов
/ 17 февраля 2012

Вводящее в заблуждение сообщение об ошибке.Порт на самом деле 21234, а не 82. Я получил те же ошибки.Исправление состояло в том, чтобы запустить ccnet.exe из ярлыка на рабочем столе, чтобы обнаружить, что настоящая проблема заключалась в неправильном коде в моем файле ccnet.config.

После исправления файла ccnet.config проблема перешла.При попытке сборки система не позволяла клиенту Subversion изменять файлы маркеров только для чтения в извлеченном репо.

0 голосов
/ 30 марта 2011

Похоже, вы путаете две разные функции:

TCP: // локальный: 21234

Это порт удаленного взаимодействия по умолчанию для таких клиентов, как CCTray. Это не используется для веб-сайта IIS (панель инструментов).

В документе конфигурации, скорее всего, отсутствуют узлы Xml, необходимые для правильного заполнения конфигурации CruiseControl. Отсутствует узел XML (packageList) для обязательного члена (ThoughtWorks.CruiseControl.Core.Publishers.Package Publisher.PackageList)

В вашем примере конфигурации отсутствует обязательный packageList узел.

0 голосов
/ 30 марта 2011

Вы проверили файл dashboard.config вашего ccnet? В нем есть следующая строка:

<server name="local" url="tcp://localhost:21234/CruiseManager.rem" ... />

Попробуйте изменить порт для этого порта на 82, а затем перезапустите веб-сайт (вы должны просто добавить пробел в файл web.config и сохранить его, а IIS перезапустит веб-сайт).

0 голосов
/ 30 марта 2011

Относительно 2-й проблемы: вы пытались запустить сервер CC.NET из командной строки?
Если у вас есть ошибка в конфигурации XML, это даст вам более значимое сообщение об ошибке.Какую учетную запись вы используете для запуска службы Windows?

0 голосов
/ 30 марта 2011

Первое полученное вами сообщение (соединение активно отклоняется) заставляет меня подумать о брандмауэре, который блокирует используемый вами порт.

Вторая проблема может быть чем угодно.Это может быть, например, ошибка в файле конфигурации XML (ccnet.config).Можете ли вы найти какие-либо указатели в журнале событий Windows?

...