“由于目标计算机积极拒绝”导致无法访问 WCF 服务的解决办法

昨天晚上在家调试项目代码,编译好后,在用户登录时抛异常了。

看了下日志,异常内容如下:

System.ServiceModel.EndpointNotFoundException: Could not connect to net.tcp://localhost:8888/LogService. The connection attempt lasted for a time span of 00:00:02.0592036. TCP error code 10061: 由于目标计算机积极拒绝,无法连接。 127.0.0.1:8888.  ---> System.Net.Sockets.SocketException: 由于目标计算机积极拒绝,无法连接。 127.0.0.1:8888
  at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
  at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
  at System.ServiceModel.Channels.SocketConnectionInitiator.Connect(Uri uri, TimeSpan timeout)
  --- End of inner exception stack trace ---

当时困得不行,以为是因为 VPN 不正常导致,就去睡觉了。

刚才重新调试,仍然是抛同样的异常。


突然想起服务里的几个数据库刚才都没有自启动,于是推断是否因为关联的服务没启动造成这个异常?因为之前在家调试都是正常的。

看了下服务,果然是“Net.Tcp Listener Adapter”这个服务没有启动,把服务启动后重试,一切正常。


因为我们的 WCF 服务采用的是 net.tcp 协议,所以“Net.Tcp Listener Adapter”服务必须要启动 WCF 才可以正常访问。

相应的,如果 WCF 服务采用的是 net.pipe / net.msmq,则需要启动相应的“Net.Pipe Listener Adapter”/“Net.Msmq Listener Adapter”服务。