使用 VisualSVN Server 和 Cruisecontrol.net 检查内容集成中的修改失败

发布于 2024-08-30 13:05:47 字数 1869 浏览 12 评论 0原文

我正在使用 CruiseControl.net 进行持续集成。我使用 VisualSvn 服务器(使用 Windows 身份验证)为我的项目创建了一个存储库。两台服务器都托管在同一系统(Os-Microsoft Windows Server 2003 sp2)中。

当我使用 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) 

ccnet.config 中的我的 SourceControl 节点如下所示:

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

谁能建议如何避免此错误?

I am using CruiseControl.net for continous integration. I've created a repository for my project using VisualSvn server (uses Windows Authentication). Both the servers are hosted in the same system (Os-Microsoft Windows Server 2003 sp2).

When i force build the project using CruiseControl.net "Failed task(s): Svn: CheckForModifications" is shown as the message. When i checked the build report, it says as follows:

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) 

My SourceControl node in the ccnet.config is as shown below:

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

Can any one suggest how to avoid this error?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

小…楫夜泊 2024-09-06 13:05:48

颠覆错误消息显示

svn: OPTIONS of 'https://sp- ci.sbsnetwork.local:8443/svn/IntranetPortal/Source': 服务器证书验证失败:颁发者不受信任 (https://sp-ci.sbsnetwork.local:8443).

这告诉我你的 'svn' 不信任 https 证书你的服务器。

您可以通过执行类似于

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

用户运行 Cruisecontrol 的操作来修复此问题,然后接受证书。

(另一个选择是让 CruiseControl 将 --trust-server-cert 传递给 svn,但我不知道您需要哪个配置选项)

The subversion error message says

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

This tells me that your 'svn' doesn't trust the https certificate of your server.

You can fix this by performing something like

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

as the user running cruisecontrol and then accept the certificate.

(Another option would be to make CruiseControl pass --trust-server-cert to svn, but I don't know which configuration option you need for that)

十级心震 2024-09-06 13:05:48

服务器证书验证
失败:发行者不受信任

通过 HTTP 连接或将 CA 证书添加到构建计算机。

Server certificate verification
failed: issuer is not trusted

Either connect via HTTP or add the CA certificate to the build machine.

漫漫岁月 2024-09-06 13:05:48

此处查看类似(但略有不同)的问题我不久前也有过。

基本上,您无法以普通的“SYSTEM”帐户运行服务,您需要指定和配置具有适当权限的本地用户,并将服务配置为以该用户身份运行。

然后以用户身份登录服务器并在命令行运行任何svn命令;
Bert 建议:

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

系统应该提示您输入 SVN 用户名和密码,然后将其缓存在适当的位置。系统还应该提示您接受证书 - 您应该这样做。

现在该服务应该可以正常运行。

Take a look here for a similar (but slightly different) problem that I had a little while ago.

Basically you cannot run the service as the normal 'SYSTEM' account, you need to specify and configure a local user, with the appropriate permissions and configure the service to run as that user.

Then log into the server as the user and run any svn command at the command line;
Bert suggests:

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

you should be prompted for the SVN username and password which are then cached in the appropriate location. You should also be prompted to accept the certificate - which you should do.

Now the service should run without any problems.

苏佲洛 2024-09-06 13:05:48

我试图在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.                    

I was trying to do the continuous integration in a windows server domain. The domain controller server should issue a certificate for the svn server(installed in one of the domain). Then import the issued certificate to svn server.

The process include two steps:

1) creating a request to issue a certificate from domain controller.

           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) Submitting the .req file to the domain controller to get the certificate

           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.                    
任性一次 2024-09-06 13:05:48

CruiseControl 服务默认在本地服务帐户下运行,因此请确保通过本地服务帐户接受证书或将“登录身份”服务用户更改为接受证书的用户。

参考

CruiseControl service runs by default under local service account, so make sure the certificates are accepted via local service account or change "Log on as" service user to user which accepted the certs.

reference

风启觞 2024-09-06 13:05:48

我在问题中修复了同样的问题 传递参数使用 CruiseControl.net 时到 svn

您基本上需要更改 ccnet.config 中的源代码控制块并使用将 --trust-server-cert 选项传递给 svn 的批处理文件

I fixed the same issue here in my question at Pass arguments to svn when using CruiseControl.net

You basically need to alter your sourcecontrol block in ccnet.config and use a batch file which passes the --trust-server-cert option to svn

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文