2010-04-29 10 views
5

Ich verwende CruiseControl.net für die kontinuierliche Integration. Ich habe ein Repository für mein Projekt mit VisualSvn-Server erstellt (verwendet Windows-Authentifizierung). Beide Server werden auf demselben System gehostet (Os-Microsoft Windows Server 2003 SP2).Überprüfen Sie auf Modifikationsfehler in Inhalt Integration mit VisualSVN Server und Cruisecontrol.net

Wenn ich erzwinge Build das Projekt mit CruiseControl.net "Fehlgeschlagene Aufgabe (n): Svn: CheckForModifications" wird als die Nachricht angezeigt. Wenn ich den Build-Bericht überprüft, heißt es wie folgt:

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) 

Mein Sourcecontrol-Knoten im ccnet.config wie unten gezeigt wird:

<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> 

Kann jemand vorschlagen, wie diese Fehler zu vermeiden?

Antwort

1

Server Zertifikat-Verifizierungs fehlgeschlagen: Emittent

vertraut

Entweder über HTTP verbinden oder das CA-Zertifikat der Build-Maschine hinzufügen.

5

Die Subversion Fehlermeldung sagt

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).

Das sagt mir, dass Ihr ‚svn‘ vertrauen nicht das HTTPS-Zertifikat des Servers.

Sie können dieses Problem beheben, indem Sie etwas wie

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

als Benutzer ausgeführt wird CruiseControl- und akzeptieren das Zertifikat durchführen.

(Eine andere Möglichkeit wäre CruiseControl- Pass --trust-server-cert SVN zu machen, aber ich weiß nicht, welche Konfigurationsoption Sie dafür brauchen)

+0

Hallo, Ich habe nicht ganz verstanden, was Sie gesagt haben. Könnten Sie bitte erklären, was Sie gemeint mit: „info https etwas wie SVN ausführen: //sp-ci.sbsnetwork.local: 8443/svn/IntranetPortal/Quelle als Benutzer CruiseControl- ausgeführt wird und dann das Zertifikat akzeptieren“ Danke für deine Antwort ... – Harun

+0

Ähnlich wie meine Gedanken. – DilbertDave

+0

Verwenden Sie PsExec von Sysinternal Suite (http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx), um eine Eingabeaufforderung zu öffnen, die als LocalSystem angenommen wird, und akzeptieren Sie dauerhaft das Zertifikat – Vasea

1

Werfen Sie einen Blick here für ein ähnliches (aber etwas anderes) Problem, das ich vor einiger Zeit hatte.

Grundsätzlich können Sie den Dienst nicht als normales 'SYSTEM'-Konto ausführen, Sie müssen einen lokalen Benutzer mit den entsprechenden Berechtigungen angeben und konfigurieren und den Dienst so konfigurieren, dass er als dieser Benutzer ausgeführt wird.

Melden Sie sich dann als Benutzer beim Server an und führen Sie einen beliebigen Befehl svn in der Befehlszeile aus.
Bert schlägt vor:

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

Sie sollten für die SVN-Benutzername und Passwort gefragt werden, die in der entsprechenden Stelle dann zwischengespeichert werden. Sie sollten auch aufgefordert werden, das Zertifikat zu akzeptieren - was Sie tun sollten.

Jetzt sollte der Dienst ohne Probleme laufen.

+0

Hallo, Eigentlich geht es nicht um mein Problem ccnet als Dienst starten. Ich habe kein Problem damit. Aber beim Auschecken mithilfe von Ccnet-Konfiguration tritt der folgende Fehler auf: Fehlgeschlagene Aufgabe (n): Svn: CheckForModifications "wird als die Nachricht angezeigt. Wenn ich den Build-Bericht überprüft, heißt es" Server-Zertifikat-Überprüfung fehlgeschlagen: Aussteller ist nicht vertrauenswürdig " ..... für weitere Details siehe meine Frage .... – Harun

+0

Auch wenn ich versuche, manuell mit der gleichen URL des VisualSVN-Servers auschecken, wird ein Popup angezeigt, das besagt, dass das Zertifikat nicht vertrauenswürdig ist, ob man damit fortfahren soll ". Nachdem ich es dauerhaft angenommen habe, funktioniert die Kasse gut. Aber als ich ccnet config ausprobierte, passiert der Fehler, den ich in meinem vorherigen Kommentar erwähnte. Haben Sie irgendwelche Vorschläge, um es zu lösen? .. – Harun

+0

Ok - ich bin nicht 100% sicher was Sie meinen mit "Auschecken über ccnet config". Wenn alles funktioniert, wenn Sie als Dienst ausgeführt werden, dann sehen Sie den Fehler? Meine Probleme waren auf den Zugriff auf SVN über https zurückzuführen, da ich bei der Ausführung von CCNet als Dienst sicherstellen musste, dass der Benutzer, für den der Dienst ausgeführt wurde, ein gültiges Zertifikat besaß. Als ich mich angemeldet habe und einen Befehl svn ausgeführt habe, konnte ich das Zertifikat akzeptieren und alles war gut. – DilbertDave

0

Ich habe versucht, die kontinuierliche Integration in eine Windows-Server-Domäne zu tun. Der Domänencontroller Server sollte ein Zertifikat für den Svn-Server (in einer der Domäne installiert) ausstellen. Importieren Sie dann das ausgestellte Zertifikat auf den Server.

Verfahren umfassen zwei Schritten:

1) eine Anforderung eines Zertifikats von Domänencontroller zur Ausgabe erzeugt wird.

  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) die .req Dateisteuerung an die Domäne der Vorlage der Bescheinigung

  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- Service läuft standardmäßig unter lokalen Dienstkonto zu bekommen, so stellen Sie sicher, dass die Zertifikate über akzeptiert lokales Dienstkonto oder ändern Sie den Dienstbenutzer "Anmelden als" zum Benutzer, der die Zertifikate akzeptiert hat.

reference

0

Ich reparierte das gleiche Problem hier in meiner Frage an Pass arguments to svn when using CruiseControl.net

Sie müssen im Grunde Ihren Sourcecontrol Block in ccnet.config verändern und eine Batch-Datei, die die --trust-server- gibt verwenden cert option zu svn