背景:我正在调查CCNet向后兼容版本 1.4.4.75 和 1.6.7981.1 :旧服务器版本较新CCTray,以及带有旧版CCTray的新服务器。
我已经安装了CCNet 1.4.4.75并在我的机器上本地运行它。我在这个本地服务器上放置了一个项目,并且可以按照我的预期在CCTray 1.4.4.75上查看它。
然后我安装了CCTray 1.6.7981.1并尝试通过添加服务器列出这个项目(勾选“连接到1.5.0之前的服务器”这样做)。该项目已列出,并已成功添加到主CCTray屏幕,但似乎每次CCTray轮询服务器时,它都会断开连接并重新连接到它,从而在重新连接过程中的几秒内产生一个非常明显的灰色CCTray图标。 / p>
我对CCTray的1.4.4.75版本没有这个问题,所以我想知道在1.6版本中可能导致这种行为的原因是什么?如果没有将我的CCNet服务器升级到1.6,我该如何解决这个问题?
非常感谢任何帮助。
〜萨姆。
答案 0 :(得分:1)
问题出在CruiseControl.NET-1.6.7981.1:$ \ project \ Remote \ QueueSetSnapshot.cs(59)和 $ \项目\远程\ QueueSnapshot.cs(71)。
[OnDeserialized] DataReceived(StreamingContext context)被注释掉,因此如果服务器是1.5.0之前的版本,则没有关于服务器队列的信息。
以后出现空指针异常: CruiseServerSnapshot.IsQueueSetSnapshotChanged()$ \ project \ Remote \ CruiseServerSnapshot.cs,第73行
我已经下载了源代码,未注释的DataReceived(...)方法,已编译并且CCTray似乎工作正常。
答案 1 :(得分:0)
我遇到了同样的问题,但设法在不更改源代码的情况下解决了这个问题。添加构建服务器时,我选择“通过CruiseControl.NET仪表板”而不是“使用.NET远程直接连接”,重新连接问题已经消失。