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

标签 c# .net wcf ipc

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

所有应用程序、服务等都驻留在我们将要使用的同一台机器上 在运行 MS Windows 的单个专用硬件上安装所有内容。

所以原理图看起来像这样 WPFApp1 (包含 ReportingFacilityInterface 定义) 将通知作为单独的回调返回到 WPFApp2 ^ | | V 报告设施接口(interface)代理 ^ | | 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

最佳答案

我会:

  1. 验证您的服务器配置以确定服务端点地址
  2. 运行服务跟踪查看器工具 (SvcTraceViewer.exe)
  3. 添加一些 basicHttpBinding 端点以确保您可以从浏览器访问它

关于c# - 为什么在尝试使用 WCF 在 2 个应用程序之间进行通信时出现异常(TCP 错误代码 10061)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15992739/

相关文章:

c# - 下面的新是什么意思

c# - 各种类型的按位字节序交换

c# - 通过 WCF 桥接 NSB

asp.net - 无法访问 wcf 服务中的 asp.net session

c# - 标 checkout 现不止一次 QuickFix

c# - 表单例份验证 - 共享 Cookie MVC 和 Web 表单

.net - 我可以使用 Moonlight 创建一个独立的(不在浏览器中运行,完全信任)应用程序吗?

wcf - 何时使用 WCF ChannelFactory 而不是服务引用

c# - Serilog 异步文件日志记录 - 如何添加滚动

c# - EntityFramework 引用回调用方 - 找到的程序集的 list 定义与程序集引用不匹配