【发布时间】: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 并选中“配置测试控制器以进行负载测试。”
安装后我发现:
- 以域用户帐户 MyDomain\MyUser 的身份运行的服务“Visual Studio Test Controller”。
- 文档说该服务默认侦听端口 6901。该服务位于 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\QTController.exe。当我查看 QTController.exe.config 时,我注意到 appsettings 键 ControllerServicePort 设置为“6901”,这是默认值。
- 当我运行 netstat -a -n 时,我看到 TCP 0.0.0.0:6901 0.0.0.0.:0 LISTENING,所以看起来机器正在侦听端口 6901 并接听所有调用者。
- MyDomain\MyUser 位于控制器计算机上的管理员组中。
- MyDomain\MyUser 位于控制器计算机上的 TeamTestControllerUsers 组中。此组由 Visual Studio 控制器安装程序创建,MyDomain\MyUser 由安装程序添加。
- 我可以成功 ping MyAgent。
- 我重启了机器。
尝试配置代理时出现问题。
代理机器是运行 Windows 7 Professional SP1 的 64 位虚拟机。 MyDomain\MyUser 是这台机器的管理员。 Windows 防火墙未启用。
我以 MyDomain\MyUser 身份登录代理计算机并运行代理安装。安装结束时会出现“配置测试代理”对话框。它提出了 2 个问题:
- 将测试代理作为服务运行。我输入了 MyDomain\MyUser。
- 我勾选了“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