2012-12-21 186 views
7

在远程生成机器上,运行我的单元测试时出现以下错误。无法连接到net.tcp:连接尝试持续一段时间

试验方法MyNameSpace1.MyNameSpace2.Service.Test.MyPath.XYZServiceTest.FindRecord抛出异常: System.ServiceModel.EndpointNotFoundException:无法连接到的net.tcp://localhost/MyABCServices/XYZService.svc。连接尝试持续时间为00:00:02.0086605。 TCP错误代码10061:由于目标机器主动拒绝127.0.0.1:808,因此无法建立连接。 ---> System.Net.Sockets.SocketException:由于目标机器主动拒绝它,因此无法建立连接127.0.0.1:808

我对此构建机的访问非常有限。我无法在构建机器上访问iis,也无法访问我在本地开发机器上执行的服务。单元测试工作在我的本地开发机器上,但是它们在构建机器时遇到上述错误。

我能做些什么来调试这个错误?我已经阅读过像检查防火墙等东西,但我不知道该怎么做?我无法检查此服务的Windows服务是否已启动并正在生成计算机上运行。我试图登录到生成机器或连接我的IIS到这台远程机器,但我不能。

+5

许多人会说,如果一个单元测试访问网络或数据库,那么它不是一个单元测试。 –

+0

这确实不是一个单元测试,而是一个系统测试,但这正是大多数人都在寻找的东西,尽管人们应该都是这样做的。尽管如此,系统测试比没有测试要好。 – Jonast92

回答

8

对我来说,最常见的问题是Windows Service Net.Tcp Listener Adapter没有在主机上运行。

还要检查您的IIS Web应用程序以确保启用的协议包含net.tcp。例如,我的“http,net.tcp”,并在我的绑定我有“http::94 :, net.tcp:194:

我不知道任何好方法来远程检查IIS配置正确或Windows服务正在运行。你没有可以为你看这些值的服务器管理员吗?

2

127.0.0.1:808实际IP:端口报错?如果是这样,那么你需要修复IP(127.0.0.1localhost同义,所以这将是你的本地计算机)。

否则,这看起来像是防火墙问题。

有防火墙的两种常见来源:

  • 路由器
  • OS

路由器的防火墙通常将内部网络连接到互联网路由器上找到。在这些情况下,您(或具有访问权的人)将需要登录到路由器并将该端口转发给机器的IP。这只在两台试图通信的计算机不在同一内部网络上时才需要。
例如,如果您的计算机通过互联网连接到服务器,则需要设置端口转发。如果两台计算机在同一个办公室的同一个网络上,则不需要端口转发(这种情况在大型公司很常见,但后来有IT或网络人员来处理端口问题)。

假设您的服务器正在运行Windows,您需要具有Admin(?)访问权限的用户才能登录并打开该端口或允许您的服务接受传入的请求。由于您表示您无法访问服务器,因此我建议让负责服务器的人员验证配置。

+0

WCF服务在构建机器上运行,并且单元测试的行为就像该服务的客户端一样。他们都在同一台机器上。有一个端口阻止来自单元测试的服务请求?在同一台机器内?我会问管理员什么样的问题?谢谢您的帮助。 –

+0

当我在本地开发机器上的IIS上设置服务时,我根本没有遇到防火墙问题?我想知道构建机器管理员如何/在哪里设置了可能影响此单元测试以连接服务的这些设置。 –

+0

@ dotnet-practitioner如果服务器和客户端程序都在同一台机器上运行,那么它可能不是防火墙问题。我无法提供更多帮助,Erik Noren的答案可能是一个很好的开始。其他选项是访问服务器并检查相关设置。既然你不能直接访问服务器,下一个最好的选择就是设置一个你可以直接访问的测试服务器,并设置它在那里运行。 – Trisped

1

当我读到它时,“单元测试”显然期望在某个本地主机地址处有一个WCF net.tcp端点。因此,对于工作,你既可以

  • 添加在构建服务器所需的服务,这可能是一个共享服务器,或拥有其他团队,或者一些其他的问题,我并不了解,或
  • 更改单元测试,以便它不会期望真正的实时WCF服务,而是一个嘲弄或伪造的服务。

我(显然)建议第二个选择。

6

Starting the Net.Tcp Listener Adapter service has fixed the problem.

启动的net.tcp侦听器适配器服务已经解决了这一问题。

+1

太棒了!救了我!你是最棒的! –

+0

你是最棒的,谢谢分享!我以为我疯了。 –

相关问题