ReportingFacilityInterface

ReportingFacilityInterface

(包含ReportingFacilityInterface定义) 将通知作为单独的回调返回WPFApp2 ^ | | V ReportingFacilityInterfaceProxy ^ | | V WPFApp2(需要在WPF1 ReportingFacilityInterface对象上调用公开的方法) 我已经创建了我的WCF服务类和合同。 我正在使用代理dll来促进沟通。 以下是事件的顺序: ----------------------------- 1)WPFApp1启动并实例化公开服务类的实例 ReportingFacilityInterface = new ReportingFacility.ReportingFacilityInterface(); 这很好。 2)WPFApp2启动并初始化代理对象的实例 reportingFacilityProxy = new ReportingFacilityInterfaceProxy.ReportingFacilityProxy(); 这会实例化代理对象,从而导致调用此对象: < pre> reportingFacilityInterface = DuplexChannelFactory< IReportingFacilityInterface> .CreateChannel(objContext, RPIEndPointConfiguration); 这似乎成功运行并返回。 3)WPFApp2在对象上调用a(通过代理) reportingFacilityInterface.Initialize(configuration); 我得到一个例外,其中包含以下细节: 无法连接到网络。 TCP://本地主机:8732 / ReportingFacility。 连接尝试的持续时间为00:00:02.1931255。 TCP错误代码10061:无法建立连接,因为目标机器主动拒绝它127.0.0.1:8732 我检查了当前使用CurrPorts应用程序的端口使用情况,并注意到端口#8732不在我的机器上当前活动/使用的端口列表中。 因为我很漂亮@WCF的世界,我有点难过。 如上所述,所有这些都在同一(专用)Windows 7硬件上运行,所以权限/角色应该不是问题。 我想我离这里很近,但我只是遗漏了一些东西。 谢谢, JohnB 解决方案 基本上您需要查看发布订阅模式。一个很好的例子是: http://www.idesign.net/Downloads#InstanceManagement [ ^ ]。看看发布订阅框架。 基本上,托管您的服务(发布者)某处(应用程序1或专用服务)并让您的应用程序订阅它。从客户端或发布者设置的每条消息都将发送给已订阅活动的其他客户。 其他示例包括: http://msdn.microsoft.com/en-us/magazine /cc163537.aspx [ ^ ] http://www.squarewidget.com/poor- mans-publish-subscribe-wcf-service [ ^ ] Hi:I am trying to use WCF to setup IPC between 2 running windows applications.I want to start out by saying that I know there are other (better?) ways to implementthis solution. But, due to some pre-existing design considerations/constraints, I'm bound to using: - netTcpBinding - DuplexChannelFactory<> to support bidirectional communicationAll the applications, services, etc reside on the same machine as we will beinstalling everything on a single dedicated piece hardware running MS Windows.So the schematic kind of looks like thisWPFApp1(Contains ReportingFacilityInterface definition)Returns notifications as separate callbacks to WPFApp2 ^ | | V ReportingFacilityInterfaceProxy ^ | | V WPFApp2 (needs to call exposed methods on WPF1 ReportingFacilityInterface object) I've created my WCF "service" class and contracts.I'm using a proxy dll to facilitate the communication.Here's the sequence of events:-----------------------------1)WPFApp1 starts up and instantiates an instance of the exposed service class ReportingFacilityInterface = new ReportingFacility.ReportingFacilityInterface(); This starts up fine.2) WPFApp2 startsup and initializes instance of proxy objectreportingFacilityProxy = new ReportingFacilityInterfaceProxy.ReportingFacilityProxy(); This instantiates the proxy object, which results in this getting called:<pre>reportingFacilityInterface = DuplexChannelFactory<IReportingFacilityInterface>.CreateChannel(objContext, "RPIEndPointConfiguration"); This seems to run and return successfuly.3) WPFApp2 calls a on the object (through the proxy) reportingFacilityInterface.Initialize(configuration);I get an exception with the following detail:Could not connect to net.tcp://localhost:8732/ReportingFacility. The connection attempt lasted for a time span of 00:00:02.1931255. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:8732I examined my current port usage using the CurrPorts application and noticed that port #8732 does is not in the list of currently active/used ports on my machine.Since I'm pretty green @ the world of WCF, I'm kind of stumped here.As I mentioned above, all these are running on the same (dedicated) piece of Windows 7 hardware, so permissions/roles should not be an issue.I think I'm pretty close here, but am just missing something.Thanks,JohnB 解决方案 Basically You need to look into the publish subscribe pattern. An excellent example is: http://www.idesign.net/Downloads#InstanceManagement[^]. Take a look at the Publish subscribe framework.Basically, host your service (publisher) somewhere (app 1 or a dedicated service) and the have your apps subscribe to it. Each message that is set from a client or publisher will be sent to other clients who have subscribed to the events.Other examples are:http://msdn.microsoft.com/en-us/magazine/cc163537.aspx[^]http://www.squarewidget.com/poor-mans-publish-subscribe-wcf-service[^] 这篇关于尝试使用WCF在两个应用程序之间进行通信时,为什么会出现异常(TCP错误代码10061)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
10-30 05:31