构建永远不会启动TFS2012
我试图在我们的TFS基础设施中设置一些构建控制器和代理。我们的TFS服务器被设置为构建控制器,并且我也设置了一些构建代理。构建永远不会启动TFS2012
当我在我的系统上排队一个新的构建时,一切似乎都很好。没有错误消息出现,并且构建出现在我的系统上的队列中。然而,这就是所有的事情。当我转到Visual Studio中的构建页面时,它表示它已经“运行0秒”。看看我们的TFS服务器上的管理控制台,控制器表明它是“准备好”,但没有更多。所有代理商都被列为“准备就绪”。
我不知道有任何日志可以用来诊断此问题。我已将Logging Verbosity设置为“诊断”,但诊断下拉列表中的选项显示为灰色。该活动也完全空白。
查看构建控制器上的数据库,dbo.tbl_BuildController表列出构建。但我觉得奇怪的是StartTime是NULL
。如果我在VS中停止构建,则开始时间和结束时间在数据库中设置为相同的事物。
因此,我知道构建正在注册构建控制器,并且没有通信问题;该构建从未开始,并且从不给出错误。我该如何解决这个问题? (或者至少得到一个我可以追查的错误)。
编辑:该问题似乎与TFS服务器有关。以下是我在事件日志中发现的内容:
WebHost failed to process a request.
Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/10411892
Exception: System.ServiceModel.ServiceActivationException: The service '/tfs/queue/GPA/Services/v4.0/MessageQueueService2.svc' cannot be activated due to an exception during compilation. The exception message is: This collection already contains an address with scheme http. There can be at most one address per scheme in this collection. If your service is being hosted in IIS you can fix the problem by setting 'system.serviceModel/serviceHostingEnvironment/multipleSiteBindingsEnabled' to true or specifying 'system.serviceModel/serviceHostingEnvironment/baseAddressPrefixFilters'.
Parameter name: item. ---> System.ArgumentException: This collection already contains an address with scheme http. There can be at most one address per scheme in this collection. If your service is being hosted in IIS you can fix the problem by setting 'system.serviceModel/serviceHostingEnvironment/multipleSiteBindingsEnabled' to true or specifying 'system.serviceModel/serviceHostingEnvironment/baseAddressPrefixFilters'.
Parameter name: item
at System.ServiceModel.UriSchemeKeyedCollection.InsertItem(Int32 index, Uri item)
at System.Collections.Generic.SynchronizedCollection1.Add(T item)
at System.ServiceModel.UriSchemeKeyedCollection..ctor(Uri[] addresses)
at System.ServiceModel.ServiceHost..ctor(Type serviceType, Uri[] baseAddresses)
at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(Type serviceType, Uri[] baseAddresses)
at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo, EventTraceActivity eventTraceActivity)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
--- End of inner exception stack trace ---
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath, EventTraceActivity eventTraceActivity)
Process Name: w3wp
Process ID: 3756
我会开始查看事件日志。
- 控制面板 - >管理工具
- 事件查看器
我假设会有某种或错误出现在那里。如果您的构建代理位于不同的计算机上,请确保您在那里查看事件日志。从原来的海报
更新评论
有没有在事件日志中,其指出我们在这里一个例外:TFS2012 Build Service offline
去检查用于build service properties
用户的security
设置。我有几乎相同的问题,这是因为我改变了一些特定用户的安全设置,他突然无法再建立。
要找到用户:
- 转到您的TFS服务器
- 开放的Team Foundation Server管理控制台
- 打开构建配置 编译服务的
- 打开属性
我有一个类似的问题,但我的生成服务被设置为使用错误的项目集合 – 2015-01-02 18:33:48
我希望我早点看到这个答案!谢谢! – Shiv 2017-08-22 00:57:52
构建控制器和代理必须运行相同版本的Team Foundation Build。 (Buid Service版本类似v4.0或v4。1,它不同于tfs产品版本,有点像11.0.50727.1)
因此,如果构建代理和控制器部署在不同的机器上,请检查两台机器上的构建服务版本。它一定是一样的。
TFS阻止将构建代理分配给具有不同构建服务版本的构建控制器。但是,您可以将其中一台生成机器升级到不同的版本(例如visual studio update 2),而无需拆卸控制器和代理程序 在某些情况下,生成服务版本保持不变(例如,尽管升级到更新2版本V4.0住宿)
在这种情况下,如果要应用生成服务的新版本
在TFS 2012或2013年,以检查构建服务版本:
- 去盖机
- Open Team Foundati服务器管理控制台
- 打开构建配置
- 开放编译服务属性(点击属性链接旁边注销 链接)
- “倾听生成代理通信的”文本框
到应用的构建服务版本
- 变化停止服务
- 点击“C焊割”按钮
- 设置不同的端口号
- 重置以前的端口号
构建服务版本将会从V4.0更改为V4.1
你
今天我又陷入了同样的问题。最后它由TFS服务器上的iisreset解决 – 2014-06-25 09:01:47
有的确在TFS服务器上出现错误。 “服务'/tfs/queue/GPA/Services/v4.0/MessageQueueService2.svc'由于在编译过程中出现异常而无法激活,异常消息是:这个集合已经包含一个地址和http,它可以在这个集合中的每个方案最多有一个地址。“ – Andrew 2013-03-13 14:25:57
请参阅:http://stackoverflow.com/questions/15378001/tfs2012-build-service-offline/15378482#15378482 – gregpakes 2013-03-13 14:33:51
而不是允许多个绑定,我已经删除了以前添加的不正确的绑定。此问题似乎已解决。非常感谢你! – Andrew 2013-03-13 14:37:27