我正在尝试使用WCF来设置两个正在运行的windows应用程序之间的IPC。我想首先说的是,我知道有其他(更好的?)方法来实现这个解决方案。但是,由于一些预先存在的设计考虑/约束,我必须使用:- netTcpBinding -双工通道工厂〈〉以支持双向通信
所有的应用程序,服务等驻留在同一台机器上,因为我们将安装在一个运行MS Windows的专用硬件上的一切。
因此,示意图看起来像这样WPFApp 1(包含ReportingFacilityInterface定义)将通知作为单独的回调返回到WPFApp 2 ^||V报告设备接口代理^||V WPFApp 2(需要调用WPF 1 ReportingFacilityInterface对象上的公开方法)
我已经创建了我的WCF“服务”类和合同。我正在使用代理dll来促进通信。
以下是事件的顺序:
1)WPFApp 1启动并示例化公开的服务类的示例
ReportingFacilityInterface = new ReportingFacility.ReportingFacilityInterface();
一开始很好。
2)WPFApp 2启动并初始化代理对象的示例
reportingFacilityProxy = new ReportingFacilityInterfaceProxy.ReportingFacilityProxy();
这将示例化代理对象,从而调用:
reportingFacilityInterface = DuplexChannelFactory<IReportingFacilityInterface>.CreateChannel(objContext, "RPIEndPointConfiguration");
这似乎运行并成功返回。
3)WPFApp 2调用对象上的(通过代理)
reportingFacilityInterface.Initialize(configuration);
我得到了一个异常,其详细信息如下:
无法连接到net.tcp://localhost:8732/ReportingFacility。连接尝试持续的时间跨度为00:00:02.1931255。TCP错误代码10061:无法建立连接,因为目标计算机主动拒绝127.0.0.1:8732
我使用CurrPorts应用程序检查了当前的端口使用情况,注意到端口#8732不在我的计算机上当前活动/使用的端口列表中。
由于我对WCF的世界还很绿色,所以我有点被难住了。正如我上面提到的,所有这些都运行在同一个(专用)Windows 7硬件上,所以权限/角色应该不是问题。我想我已经很接近了,但我只是错过了一些东西。
谢谢,JohnB
2条答案
按热度按时间vjhs03f71#
我会:
1.验证服务器配置以确保服务端点地址正确
1.运行服务跟踪查看器工具(SvcTraceViewer.exe)
1.添加一些基本的HttpBinding端点,以确保可以从浏览器访问它
qltillow2#
我通过转到服务并启动Net.tcp侦听器适配器解决了相同的问题。
此外,您还可以在http://blogs.ajithbhat.com/2010/06/tcp-error-code-10061-no-connection.html中找到更多解决方案