和许多其他人一样,我使用 Visual Studio 进行软件开发。现在,我喜欢的功能之一是将 VSTest 集成到软件中。
VSTest 依靠命名管道在主机进程(测试进程)和 IDE 之间进行通信。不幸的是,主机进程和使用命名管道的测试运行器之间的通信似乎存在问题。
https://stackoverflow.com/questions/17664886/error-debugging-code-in-visual-studio-2012-failed-to-initialize-client-proxy有更多信息,但由于这最终归结为操作系统/防火墙/安全问题,我决定在这里询问。
现在,当您在管理员模式下运行 Visual Studio 时,一切都会突然开始正常工作。如果您在 W10 上处于普通用户模式,它就会崩溃。如果启用日志记录,则测试(客户端)服务上会写入以下消息:
E, 9308, 1, 2016/11/17, 09:53:39.560, 1036805288, vstest.console.exe, TestExecutorServiceClient: Could not connect to test executor service within the available time 60000. Reason:System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at net.pipe://mylaptop/TestExecutor/10516 that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.
并且主机(服务器)服务上会写入以下消息:
I, 10516, 1, 2016/11/17, 09:52:39.545, 884887986, vstest.executionengine.exe, TestExecutorService: Starting TestExecutor with command-line arguments /parentProcessId;9308
I, 10516, 1, 2016/11/17, 09:52:39.579, 884968419, vstest.executionengine.exe, TestExecutorService: Created/Started the listening channel. ChannelUri=net.pipe://mylaptop/TestExecutor/10516
如您所见,服务器报告一切正常,而客户端无法连接到 uri。
我尝试过一些没有效果的方法:
- 禁用防火墙。
- 卸载病毒扫描程序。
- 与 UAC 滑块混淆。
讽刺的是,我有一个类似的系统,运行着 W10,运行良好。类似;这是一台预装的戴尔笔记本电脑,而另一台是手工构建的系统。
为了缓解此问题,我尝试使用一些策略将 UAC 更改为本地管理员。虽然现在 VS 中的所有功能都可以正常工作,但它会因错误而破坏应用程序Can't open app with built in administrator
。
不过,在我看来这似乎是权限问题... 所以我来这里询问。有什么建议吗?