尝试配置测试代理时测试代理配置失败

本文可帮助你解决尝试配置测试代理以与控制器服务通信时发生的错误。

原始产品版本: Visual Studio Test Professional 2012、Visual Studio Test Professional 2010
原始 KB 数: 2823477

现象

假设出现了下面这种情景:

  • 测试控制器在已加入域的计算机上运行,该计算机 contoso.com具有 DNS 后缀。 测试代理在工作组计算机上运行,工作组计算机的 DNS 后缀为 fabrikaam.com

  • 这两台计算机可以使用完全限定的域名相互 ping。

  • 控制器和代理服务所需的端口存在防火墙例外。

在上述方案中,测试代理配置工具在尝试配置代理以与控制器服务通信时失败。 如如何启用测试代理日志中所述 的测试代理配置日志 显示以下错误:

I, 2013/02/08, 11:18:22.791, CreateControllerObject: attempt 0, System.Net.Sockets.SocketException (0x80004005): No such host is known

Server stack trace:
at System.Net.Dns.GetAddrInfo(String name)
at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6)
at System.Net.Dns.GetHostAddresses(String hostNameOrAddress)
at System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSocket()
at System.Runtime.Remoting.Channels.RemoteConnection.GetSocket()
at System.Runtime.Remoting.Channels.SocketCache.GetSocket(String machinePortAndSid, Boolean openNew)
at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.SendRequestWithRetry(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream)
at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream)
at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Microsoft.VisualStudio.TestTools.Controller.ControllerObject.Hello()
at Microsoft.VisualStudio.TestTools.ConfigCore.TestControllerHelper.CreateControllerObject(String controllerUri)
I, 2013/02/08, 11:18:22.918, CreateControllerObject: attempt 1, System.Net.Sockets.SocketException (0x80004005): No such host is known

原因

如果发生以下情况,则可能出现此问题:

  1. 我们在测试代理配置工具的测试控制器 URI 中为测试控制器计算机提供完全限定的域名。

  2. 测试代理和测试控制器计算机不能仅仅使用计算机主机名相互通信,因此类似于 foo 而不是 foo.contoso.com。 一个很好的测试就是从测试控制器计算机执行 ping 测试代理计算机主机名,反之亦然。

解决方法

若要解决此问题,我们需要将控制器计算机的域的 DNS 后缀追加到测试代理计算机上的 NIC 的 TCP\IP 设置,反之亦然。

步骤(在测试代理计算机上):

  1. 打开代理计算机上的 NIC\Lan 卡属性。

  2. 选择 Internet 协议版本 4 (TCP/IP v4),然后选择 属性

  3. Internet 协议版本 4 (TCP/IP v4) 对话框中的 “常规 ”选项卡上,单击“ 高级”。

  4. “高级 TCP/IP 设置”对话框中,选择“追加这些 DNS 后缀”选项(按顺序)。

  5. 单击“添加并在“TCP/IP 域后缀”对话框中,提供测试控制器域的 DNS 后缀,然后单击“添加”。

  6. 在“高级 TCP/IP 设置”对话框中单击“确定”。

  7. 在 Internet 协议版本 4(TCP/IP v4)对话框中单击“确定”。

在测试控制器计算机上重复相同的步骤。

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区