TFS 2012构建服务不绑定

时间:2013-05-07 09:58:02

标签: build web-config tfs2012

我想请一点帮助。 我有一个新安装的TFS服务器,我无法运行Build服务。 TFS和Build服务器位于同一网络上,但有两个不同的虚拟机。 构建服务器可以向TFS服务器注册控制器和构建,因此没有“连接”问题。

  • 在排队构建之后,我得到“正在运行0秒”的消息,直到我取消它或重新启动构建服务
  • 在构建服务器上,我看到Controller和Agent已经“就绪”,但旁边有一个红色的重新显示。

我搜索了interwebz,发现当TFS服务器有多个绑定时,通常会出现此问题,但我的只有一个。 (SSL很难)


详细说明:

  • TFS 2012 update 2
  • 1 IIS绑定:h__ps://tfs2012.company.hu:8080 / tfs(是的,不是默认的SSL端口)
  • 所有人都在Win2012
  • 绑定: 端口80 Sharepoint 端口80报告服务器(/报告虚拟目录) 端口443 Sharepoint(SSL) 端口8080 TFS(SSL)
  • 构建服务器的错误日志:
  

构建机器opv-builder失去了与消息队列tfsmq:// buildservicehost-1004 /的连接。      原因:请联系您的管理员。联系服务器时出错。      技术信息(针对管理员):      HTTP代码500:System.ServiceModel.ServiceActivationException

  • TFS具有的绑定图片: http://13i.imghost.us/GI/bind.jpg
  • 消息队列web.config文件:

      <?xml version="1.0" encoding="utf-8" ?>
        <configuration>
         <system.serviceModel>
       <protocolMapping>
         <remove scheme="http" />
         <add scheme="http" binding="customBinding" bindingConfiguration="TfsSoapBinding"/>
         <add scheme="https" binding="customBinding" bindingConfiguration="TfsSoapBindingHttps"/>
       </protocolMapping> 
       <bindings>
         <customBinding>
           <binding name="TfsSoapBinding">
             <textMessageEncoding messageVersion="Soap12WSAddressing10" />
             <httpsTransport authenticationScheme="Ntlm" manualAddressing="true" />
           </binding>
         </customBinding>
       </bindings>
       <behaviors> 
         <serviceBehaviors> 
           <behavior name="LongPollingThrottleBehavior">
             <serviceThrottling maxConcurrentCalls="5000" /> 
           </behavior>
         </serviceBehaviors> 
       </behaviors>
       <serviceHostingEnvironment aspNetCompatibilityEnabled="true"     multipleSiteBindingsEnabled="true" />
       <services>
         <service name="Microsoft.TeamFoundation.Server.Core.WebServices.MessageQueueWebService"
           behaviorConfiguration="LongPollingThrottleBehavior" />
         <service name="Microsoft.TeamFoundation.Server.Core.WebServices.MessageQueueWebService2"
           behaviorConfiguration="LongPollingThrottleBehavior" />
       </services>
     </system.serviceModel>
    
         

  •   
  我想问题是没有正常的http绑定。但是我没有编辑web.config文件的经验,也不知道它们的结构,所以我对google的内容无能为力。

  • NTLM身份验证?
  • Windows集成身份验证?

2 个答案:

答案 0 :(得分:0)

检查托管TFS存储库的计算机上的内存利用率。当违反95%时,我们会出现与您的问题相符的症状。不得不分享技术SQL Server,然后一切都很好。

我希望我能告诉你原因。

答案 1 :(得分:0)

虽然这个问题已经消失了,但我遇到了同样的问题,所以我会在这里发布我的发现给其他遇到它的人。

  

构建服务器可以注册控制器和发送到TFS服务器的构建,因此没有“连接”问题。

仅仅因为您能够在服务器上注册代理并不意味着它可以在构建期间连接到它。

  

...但旁边有一个红色的重复。

我假设你指的是构建机器的TFS构建管理控制台中的红色停止标志。有一次,我生活中的主要目的是让这个偶像成为构建幸福的绿色三角形。当我发生这种情况时,我所经历的兴奋与我完成这项工作需要多长时间相称,而且,经过几天的努力,让我大喊大叫之后,这种兴趣就是这样。不幸的是,我的目标是尽量减少对你的兴趣。我是这样做的:

对我而言,红色图标是由网络连接问题引起的,所以我将首先介绍如何解决这个问题。执行这些步骤后,只要出现绿色图标,就可以使用标准调试技术逐个返回并逐个撤消更改,直到找出原因。顺便说一句,我按照这些步骤解决了大多数网络连接问题,而且它们对我很有帮助。

  • 您的TFS服务器可以ping您的构建计算机吗?你的构建机器可以ping TFS服务器吗?如果没有,那就让他们这样做。

  • 首先完全禁用两台VMware客户端计算机上的所有网络的Windows防火墙。如果它们在不同的VMware ESX /服务器主机上运行,​​那么也要在两台主机上禁用Windows防火墙。毫无疑问,你会受到来自互联网的企业防火墙的保护,我们稍后会关闭它。

  • 如果您的计算机位于域中,则可能会受到组策略的约束,该策略将自动且无提示地重新启用防火墙。这就是发生在我身上的事。要暂时禁止此操作,请在上面列出的所有计算机上停止并禁用“Windows防火墙/ ICS”服务。为TCP端口9191创建防火墙例外是不够的。也许UDP可以工作,但对我来说,如果我不这样做,TFS构建会有一个红色停止符号。

  • 检查两个来宾网络适配器是否以“桥接”模式运行。同样,如果这可以修复,我们可以恢复为NAT,但我们现在想要排除这一点。但是,您现在不想为网络调试添加额外的复杂性。

  • 在两台VMware客户端计算机上运行IPConfig。获取并比较每个的IP地址。它们都是以相同的3个数字开头,只是第4个数字(最后一个点后面的数字)不同吗?如果没有,那么它们就在不同的子网上,因此无法“看到”彼此。在这种情况下,您需要移动一个与另一个子网在同一子网上。

  • 打开活动网络连接的网络属性。如果在两台计算机上设置为自动获取IP地址和网关,则它们应位于同一子网上。请向您的IT部门寻求帮助。

  • 我不会详细介绍VMware虚拟网络编辑器(在VMware Workstation中)或ESX中的类似工具,但如果您使用仅主机网络在同一主机上运行这两台计算机,那么你需要熟悉它是如何工作的。

要了解有关VMware主机网络的更多信息以及如何配置它们以网络连接多个guest虚拟机,请参阅this network diagramthese smaller diagrams,了解Bridged,NAT和仅限主机的网络选项如何适用于此。< / p>

我只是假设他们不是通过VPN交谈。如果是,那么以下可能是问题:     - 他们可能有企业防火墙干扰。

  • 如果VMware主机通过VPN连接到公司Intranet,则只要VPN软件直接在guest虚拟机上运行,​​就可以以“NAT”或“桥接”模式连接guest虚拟机(不在主持人身上)。否则,DHCP认为它发出了两个IP地址,而访客则没有。

  • 如果VMware主机通过直接电缆(而不是VPN)连接到公司Intranet,则客户端可能需要以“桥接”模式连接,而不是以NAT模式连接。这对我们的机器来说是一个问题,可能是由于一个IT网络政策或其他政策。

  • 如果您的构建计算机以无线方式连接到网络(我只是说),那么在测试期间将其与电线连接。