【问题标题】:"No such host is known" for Visual Studio 2013 Web Performance Test agent configurationVisual Studio 2013 Web 性能测试代理配置的“没有这样的主机是已知的”
【发布时间】:2015-03-26 14:33:50
【问题描述】:

我正在尝试为 Visual Studio 2013 Web 性能测试设置控制器和代理,并且在配置代理时收到错误消息“无法向测试控制器注册此测试代理。连接到测试控制器 MyController: 6901 失败,因为测试控制器可访问或服务未运行。”

日志中的详细错误消息是:“System.Net.Sockets.SocketException (0x80004005): No such host is known”

我从http://www.microsoft.com/en-us/download/details.aspx?id=40750下载了“Agents for Microsoft Visual Studio 2013”​​

控制器 MyController 是一台运行 Windows 7 Professional SP1 的 64 位物理机。 MyDomain\MyUser 是这台机器的管理员。 Windows 防火墙未启用。

我以 MyDomain\MyUser 身份登录控制器计算机并运行控制器安装。我将登录帐户指定为 MyDomain\MyUserName 并选中“配置测试控制器以进行负载测试。”

安装后我发现:

  1. 以域用户帐户 MyDomain\MyUser 的身份运行的服务“Visual Studio Test Controller”。
  2. 文档说该服务默认侦听端口 6901。该服务位于 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\QTController.exe。当我查看 QTController.exe.config 时,我注意到 appsettings 键 ControllerServicePort 设置为“6901”,这是默认值。
  3. 当我运行 netstat -a -n 时,我看到 TCP 0.0.0.0:6901 0.0.0.0.:0 LISTENING,所以看起来机器正在侦听端口 6901 并接听所有调用者。
  4. MyDomain\MyUser 位于控制器计算机上的管理员组中。
  5. MyDomain\MyUser 位于控制器计算机上的 TeamTestControllerUsers 组中。此组由 Visual Studio 控制器安装程序创建,MyDomain\MyUser 由安装程序添加。
  6. 我可以成功 ping MyAgent。
  7. 我重启了机器。

尝试配置代理时出现问题。

代理机器是运行 Windows 7 Professional SP1 的 64 位虚拟机。 MyDomain\MyUser 是这台机器的管理员。 Windows 防火墙未启用。

我以 MyDomain\MyUser 身份登录代理计算机并运行代理安装。安装结束时会出现“配置测试代理”对话框。它提出了 2 个问题:

  1. 将测试代理作为服务运行。我输入了 MyDomain\MyUser。
  2. 我勾选了“Register with Test Controller”并输入“MyController:6901”并点击Apply Settings。

错误消息是“无法向测试控制器注册此测试代理。连接到测试控制器 MyController:6901 失败,因为测试控制器可访问或服务未运行。”

测试代理有详细的错误日志。以下是相关部分:

I,2015/03/26,09:35:57.872,AgentConfiguration:发现代理未在任何控制器上配置。 我,2015/03/26,09:35:57.872,获取有关控制器的信息:MyController:6901。 I, 2015/03/26, 09:35:57.872, 创建频道 我,2015/03/26,09:35:57.997,CreateControllerObject:ControllerVersion:12.0 I, 2015/03/26, 09:36:02.943, CreateControllerObject: 尝试 0, System.Net.Sockets.SocketException (0x80004005): 不知道这样的主机

服务器堆栈跟踪: 在 System.Net.Dns.GetAddrInfo(字符串名称) 在 System.Net.Dns.InternalGetHostByName(字符串主机名,布尔值 includeIPv6) 在 System.Net.Dns.GetHostAddresses(字符串主机名或地址) 在 System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSocket() 在 System.Runtime.Remoting.Channels.RemoteConnection.GetSocket() 在 System.Runtime.Remoting.Channels.SocketCache.GetSocket(字符串 machinePortAndSid,布尔 openNew) 在 System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.SendRequestWithRetry(IMessage 消息,ITransportHeaders requestHeaders,流 requestStream) 在 System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage(IMessage 消息,ITransportHeaders requestHeaders,流 requestStream,ITransportHeaders& responseHeaders,Stream& responseStream) 在 System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)

我重新启动 MyAgent 并得到同样的错误。

从 MyAgent 我可以成功 ping MyController。

我可以从 MyAgent telnet MyController 6901 并获得空白屏幕(这意味着端口已打开)。

我尝试了此处提到的修复 (http://support.microsoft.com/en-us/kb/2823477),将控制器机器的域的 DSN 后缀附加到控制器机器和代理机器上的 NIC 的 TCP\IP 设置。由于 MyAgent 和 MyController 能够仅使用机器名称相互 ping 通,我没想到这个解决方案会起作用,而且它不起作用。

我在 Windows 7 64 位物理机(而不是虚拟机)上重复了此代理安装并收到完全相同的错误。

有针对 Visual Studio 早期版本的修补程序(例如 http://support.microsoft.com/en-us/kb/2643086),但没有针对 VS 2013 的修补程序。

【问题讨论】:

    标签: visual-studio-2013 performance-testing stress-testing


    【解决方案1】:

    我们的代理机器与控制器机器位于不同的子网上。

    当我们将控制器移动到与代理机器位于同一子网中的机器上时,它就开始工作了。

    这可能是因为控制器使用物理机,代理使用虚拟机,但这是推测。

    【讨论】:

      猜你喜欢
      • 2018-02-05
      • 2011-06-25
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-20
      • 2021-12-08
      相关资源
      最近更新 更多