我已经配置和测试 CCNet 有一段时间了,现在使用 Virtual PC 来托管它。一切都很顺利,决定将配置转移到服务器位置——这和预期的一样顺利。一些调整和踢腿,我让它像以前一样运行。
问题是我们现在需要将 CCNet 作为服务运行,这被证明是有问题的。
我已经配置了一个与我具有相同访问权限的域级用户(毕竟控制台应用程序已经像我一样运行了大约 3 个月)并将服务配置为在该用户下运行。
我启动了服务,它挂了![我不会让你厌烦强制服务停止和关闭保持打开的套接字的细节]。当我最终能够再次运行控制台时,我执行了“运行方式”并输入了“cruisecontrol”用户详细信息,单击“确定”并看到通过 https 访问 SVN 时出现问题。我通过将 IE 作为“cruisecontrol”运行、导航到存储库并接受/安装证书来对其进行排序。接下来,当我将控制台应用程序作为“cruisecontrol”运行时,它会在以下几行之后挂起:
2009-01-15 16:55:50,994 [Pepsi Webservices:DEBUG] Running Subversion with arguments : log --xml --limit 1 https://ash-dev-005.[path to trunk]
2009-01-15 16:55:51,478 [Pepsi Webservices:DEBUG] Authentication realm: https://ash-dev-005.[path to repository] Subversion Repositories
超时后,我可以关闭控制台,正常运行(即像我一样)并且运行良好。我尝试以“cruisecontrol”用户身份登录服务器并尝试运行控制台,但结果相同。
现在,事情是这样的:今天早上,我以“cruisecontrol”用户身份登录服务器并打开了一个命令窗口。我导航到项目的主干并输入“svn update”并提示输入密码。
这并不奇怪,但该提示上方的行是上面的“身份验证领域:...”行!查看日志文件,果然在进程被 CCNet 杀死后,会提示输入密码。CCNet/SVN 是否在等待输入密码然后超时?如果是这样,为什么它不使用配置文件中的那个?
我输入了密码,更新继续进行,没有任何问题(因此 Cruisecontrol 用户确实有权从服务器访问存储库)。我再次输入命令,但没有第二次提示,所以我尝试打开一个新的命令窗口并重新运行命令 - 仍然没有提示输入密码,所以我注销并重新登录(作为巡航控制)并再次尝试,但仍然没有提示.
好消息是,当我以 Cruisecontrol 用户身份运行控制台应用程序时(无论是以 Cruisecontrol 身份登录还是仅使用 Run As),一切似乎都正常。
那么我的问题是什么?那么,为什么 CCNet 不使用配置文件中的密码呢?在命令提示符下输入密码是如何解决问题的(并且会持续存在)?
任何建议/见解表示赞赏。