为什么在尝试使用 WCF 在 2 个应用程序之间进行通信时出现异常(TCP 错误代码 10061)?

我正在尝试使用 WCF 在 2 个正在运行的 Windows 应用程序之间设置 IPC。我想首先说我知道还有其他(更好的?)方法可以实现这个解决方案。但是,由于一些预先存在的设计考虑/约束,我必须使用: - netTcpBinding - DuplexChannelFactory<> 来支持双向通信

所有应用程序、服务等都驻留在同一台机器上,因为我们将把所有东西都安装在运行 MS Windows 的单个专用硬件上。

所以示意图看起来像这样 WPFApp1(包含 ReportingFacilityInterface 定义)将通知作为单独的回调返回到 WPFApp2 ^ | | V ReportingFacilityInterfaceProxy ^ | | V WPFApp2(需要在 WPF1 ReportingFacilityInterface 对象上调用公开的方法)

我已经创建了我的 WCF“服务”类和合同。我正在使用代理 dll 来促进通信。

以下是事件的顺序:


1)WPFApp1启动并实例化暴露的服务类的一个实例

ReportingFacilityInterface = new ReportingFacility.ReportingFacilityInterface(); 

这开始很好。

2) WPFApp2 启动并初始化代理对象的实例

reportingFacilityProxy = new ReportingFacilityInterfaceProxy.ReportingFacilityProxy();

这会实例化代理对象,从而导致调用:

reportingFacilityInterface = DuplexChannelFactory<IReportingFacilityInterface>.CreateChannel(objContext, "RPIEndPointConfiguration"); 

这似乎运行并成功返回。

3) WPFApp2 在对象上调用 a (通过代理)

 reportingFacilityInterface.Initialize(configuration); 

我收到以下详细信息的异常:

无法连接到 net.tcp://localhost:8732/ReportingFacility。连接尝试持续了 00:00:02.1931255 的时间跨度。 TCP错误代码10061:无法建立连接,因为目标机器主动拒绝它 127.0.0.1:8732

我使用 CurrPorts 应用程序检查了我当前的端口使用情况,并注意到端口 #8732 不在我机器上当前活动/使用的端口列表中。

因为我在 WCF 的世界里很绿,所以我有点难过。正如我上面提到的,所有这些都在同一个(专用)Windows 7 硬件上运行,因此权限/角色应该不是问题。我想我离这里很近,但我只是错过了一些东西。

谢谢,约翰B

stack overflow Why am I getting an exception (TCP error code 10061) when attempting to communicate between 2 applications using WCF?
原文答案

答案:

作者头像

I'd:

  1. Verify your server config to be sure about service endpoint address
  2. Run the Service Trace Viewer Tool (SvcTraceViewer.exe)
  3. Add some basicHttpBinding endpoint to be sure you can access it from your browser
作者头像

我通过转到服务并启动 Net.tcp 侦听器适配器解决了同样的问题。

此外,您可以在此处找到更多解决方案 http://blogs.ajithbhat.com/2010/06/tcp-error-code-10061-no-connection.html

相关问题