2010-04-29 1 views
5

Я использую CruiseControl.net для непрерывной интеграции. Я создал репозиторий для моего проекта с использованием сервера VisualSvn (использует проверку подлинности Windows). Оба сервера размещены в одной системе (Os-Microsoft Windows Server 2003 sp2).Проверить, нет ли изменений в содержании Интеграция с использованием VisualSVN Server и Cruisecontrol.net

Когда я принудительно создаю проект с помощью CruiseControl.net «Неверные задачи: Svn: CheckForModifications» отображается как сообщение. Когда я проверил отчет сборки, он говорит следующее:

BUILD EXCEPTION 
Error Message: ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: svn: OPTIONS of 'https://system:8443/svn/folder/Source': **Server certificate verification failed: issuer is not trusted** (https://system:8443). Process command: C:\Program Files\VisualSVN Server\bin\svn.exe log **sameUrlAbove** -r "{2010-04-29T08:35:26Z}:{2010-04-29T09:04:02Z}" --verbose --xml --username ccnetadmin --password cruise --non-interactive --no-auth-cache 
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo) 
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.GetModifications (IIntegrationResult from, IIntegrationResult to) 
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod.GetModifications(ISourceControl sourceControl, IIntegrationResult lastBuild, IIntegrationResult thisBuild) 
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.GetModifications(IIntegrationResult from, IIntegrationResult to) 
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest request) 

Мой SourceControl узел в ccnet.config является, как показано ниже:

<sourcecontrol type="svn"> 
    <executable>C:\Program Files\VisualSVN Server\bin\svn.exe</executable> 
    <trunkUrl> 
    check out url 
    </trunkUrl> 
    <workingDirectory> 
    C:\ProjectWorkingDirectories\folder\Source 
    </workingDirectory> 
    <username> 
    ccnetadmin 
    </username> 
    <password> 
    cruise 
    </password> 
</sourcecontrol> 

Может ли один предложить, как избежать этой ошибки?

ответ

1

Сервер проверки сертификата не удалось: эмитент не является доверенным

Либо подключиться через HTTP или добавить сертификат CA в строительной машине.

5

Сообщение об ошибке подрывного говорит

svn: OPTIONS of ' https://sp-ci.sbsnetwork.local:8443/svn/IntranetPortal/Source ': Server certificate verification failed: issuer is not trusted (https://sp-ci.sbsnetwork.local:8443).

Это говорит о том, что ваша «СВН» не доверяет сертификату HTTPS сервера.

Вы можете исправить это, выполнив что-то вроде

svn info https://sp-ci.sbsnetwork.local:8443/svn/IntranetPortal/Source 

как пользователь работает CruiseControl, а затем принять сертификат.

(Другой вариант был бы сделать CruiseControl проход --trust-сервер-CERT в SVN, но я не знаю, какой вариант конфигурации вам нужно для этого)

+0

Hi, Я не совсем понял, что вы сказали. Не могли бы вы объяснить, что вы имели в виду: «выполнить что-то вроде SVN Ставки https: //sp-ci.sbsnetwork.local: 8443/SVN/IntranetPortal/Источник как пользователь работает CruiseControl, а затем принять сертификат» Спасибо за ваш ответ ... – Harun

+0

Как и мои мысли. – DilbertDave

+0

использовать PsExec из Sysinternal Suite (http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx), чтобы открыть командную строку, выданную под именем LocalSystem, и принять навсегда сертификат – Vasea

1

Посмотрите here для аналогичного (но немного другая) проблема, которую я имел немного недавно.

Как правило, вы не можете использовать службу как обычную учетную запись «SYSTEM», вам нужно указать и настроить локального пользователя с соответствующими разрешениями и настроить службу для запуска в качестве этого пользователя.

Затем войдите в систему как пользователь и запустите любую команду svn в командной строке;
Bert предлагает:

svn info https://sp-ci.sbsnetwork.local:8443/svn/IntranetPortal/Source 

вы должны ввести имя пользователя и пароль, SVN, которые затем кэшируются в соответствующем месте. Вам также должно быть предложено принять сертификат, который вы должны сделать.

Теперь сервис должен работать без проблем.

+0

Привет, На самом деле моя проблема не в том, что запуск ccnet как службы. У меня нет проблем в этом. Но при проверке с использованием конфигурации ccnet возникает следующая ошибка: Неверные задачи: Svn: CheckForModifications "отображается как сообщение. Когда я проверил отчет о сборке, в нем говорится:« Не удалось проверить сертификат сервера: эмитент не доверен » ..... для получения более подробной информации см. Мой вопрос .... – Harun

+0

Также, когда я пытаюсь вручную проверить, используя тот же URL-адрес сервера visualsvn, отображается всплывающее окно, в котором говорится, что «сертификат не доверен, следует ли продолжать с этим «После принятия его на постоянной основе проверка работает нормально, но когда я попытался через конфигурацию ccnet, возникла ошибка, о которой я упомянул в предыдущем комментарии. У вас есть какие-либо предложения по ее решению? .. – Harun

+0

Хорошо - я не уверен на 100%, что вы понимаете, «проверяя, используя конфигурацию ccnet». Если все работает нормально при работе в качестве службы, то когда вы видите ошибку? Мои проблемы связаны с доступом к SVN через https, потому что, когда я запускал CCNet в качестве службы, мне нужно было убедиться, что пользователь, с которым работает служба, имеет действительный сертификат. Вход в систему как этот пользователь и запуск команды svn позволил мне принять сертификат, и все было хорошо. – DilbertDave

0

Я пытался сделать непрерывную интеграцию в домене сервера Windows . Сервер домена должен выдавать сертификат для сервера svn (установленного в одном домене). Затем импортируйте выданный сертификат на сервер svn.

Процесс включает два этапа:

1) Создание запроса на выдачу сертификата от контроллера домена.

  For that follow the steps: 
       i) open visual svn server 
       ii) "right click" **visualSVN Server(Local)** and "select" 
         **properties** 
       iii) "select" **change certificate** in **cetificates** 
       iv) "check" the **prepare certificate request** and "provide" the 
         domain controller as server and do as asked. 
        v) "save" the request as **.req extension** and **finish** the 
        process 

2) Отправка файла .req к контроллеру домена, чтобы получить сертификат

  For that follow the steps: 
        i) run **cmd** 
        ii) run **certreq -submit -attrib "CertificateTemplate: WebServer" 
         .req file with its path** 
        iii) save the certificate with **.cer** extension. 
        iv) do **i,ii,iii** of the **step 1** 
        v) "check" the **Import Signed Certificate** and "browse" the 
         **.cer file** and install it.      
0

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

reference

0

я установил тот же вопрос здесь, в моем вопросе на Pass arguments to svn when using CruiseControl.net

Вы в основном должны изменить свой SourceControl блок в ccnet.config и использовать пакетный файл, который проходит в --trust-поддерживаемый сервер cert для svn

Смежные вопросы