3

我想寻求一点帮助。我有一个新安装的 TFS 服务器,但无法运行 Build 服务。TFS 和构建服务器在同一个网络上,但有 2 个不同的虚拟机。构建服务器可以将控制器和构建代理注册到 TF​​S 服务器,因此不存在“连接”问题。

  • 在我对构建进行排队后,我会收到“正在运行 0 秒”的消息,该消息一直存在,直到我取消它或重新启动构建服务
  • 在构建服务器上,我看到控制器和代理已“就绪”,但它们旁边有一个红色矩形。

我搜索了interwebz,发现这个问题通常出现在TFS服务器有多个绑定时,但我的只有一个。(SSL 强硬)


细节:

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

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

  • TFS 拥有的 Bindings 的图片: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 文件的经验,不知道它们的结构,所以我什至对谷歌都束手无策。

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

2 回答 2

0

检查托管 TFS 存储库的计算机上的内存利用率。只要问题超过 95%,我们就会得到与您的问题相匹配的症状。不得不技术 SQL Server 来分享,然后一切都很好。

我希望我能告诉你为什么。

于 2014-01-17T20:53:34.893 回答
0

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

构建服务器可以注册控制器并将构建发送到 TFS 服务器,因此不存在“连接”问题。

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

...但是他们旁边有一个红色的矩形。

我假设您指的是构建机器的 TFS 构建管理控制台中的红色停止符号。在某一时刻,我人生的主要目的是让那个图标成为建立幸福的绿色三角形。当那件事发生时,我所经历的兴高采烈与我完成这件事需要多长时间成正比,因此,经过几天的努力,足以让我大喊大叫。不幸的是,我的目标是尽量减少你的兴高采烈。我是这样做的:

对我来说,红色图标是由网络连接问题引起的,所以我将从如何解决这个问题开始。执行这些步骤时,一旦出现绿色图标,请使用标准调试技术返回并逐个撤消更改,直到找出原因。顺便说一句,对于大多数网络连接问题,我都遵循这些步骤,它们对我很有帮助。

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

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

  • 如果您的计算机位于域中,它们可能会受到组策略的约束,该策略将自动且静默地重新启用防火墙。这就是发生在我身上的事情。要暂时禁止这种情况,请停止并禁用上述所有机器上的“Windows 防火墙/ICS”服务。为 TCP 端口 9191 创建防火墙例外是不够的。也许 UDP 会起作用,但对我来说,如果我不这样做,TFS 构建会出现红色停止标志。

  • 检查两个来宾网络适配器是否在“桥接”模式下运行。同样,如果这可以解决问题,我们可以恢复到 NAT,但我们现在想排除这种情况。但是,您暂时不想为网络调试增加额外的复杂性。

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

  • 打开活动网络连接的网络属性。如果在两台机器上它们都设置为自动获取 IP 地址和网关,那么它们应该在同一个子网上。在此处向您的 IT 部门寻求帮助。

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

要了解有关 VMware 主机网络以及如何将它们配置为通过网络连接多个来宾的更多信息,请参阅此网络图这些显示桥接、NAT 和仅主机网络选项如何融入其中的小图。

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

  • 如果 VMware 主机通过 VPN 连接到公司 Intranet,则只要 VPN 软件直接在来宾(而不是主机)上运行,来宾就可以在“NAT”或“桥接”模式下连接。否则 DHCP 认为它正在发布两个 IP 地址,而访客则没有。

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

  • 如果您的构建机器以无线方式连接到网络(我只是说),那么现在在测试期间用电线连接它。

于 2014-05-17T21:24:49.820 回答