我是WCF的新手,我遇到了一个问题,我不知道如何解决它。
我有Windows服务应用程序监听COM端口,以及用于配置Windows服务应用程序的GUI WPF应用程序。其中我的想法是每次有什么东西进入COM端口时向WPF应用程序发送通知,并可能将该数据发送到WPF。
对于这两个客户端之间的通信,我使用WCF,并且为了从WCF服务向WPF应用程序发送数据,我得使用回调。
由于两个不同的客户端,我必须使用两个不同的ServiceContracts。其中一个ServiceContacts支持回调方法,其中一个不支持回调方法。
当WS从COM端口获取数据时,有没有办法调用在WPF应用程序上实现的回调方法。在WS上,我调用ServiceContract中为WS定义的代理方法,并在WCF服务中获取数据,但是当我调用回调时,它始终为null。我知道OperationContext存在问题,我知道问题是什么,但我不知道如何解决它,或者有什么方法可以解决它。
请帮帮我,谢谢你。
答案 0 :(得分:0)
我认为如果您的WFP客户端通常正在调用"服务"那么双工WCF(即与回调合同)是一种方法。无论如何,通过WCF。您将在" service"中获取回调上下文。契约类(通常是它的构造函数),然后使用它随时将任何内容转发给WPF客户端。 Google" Duplex WCF"。
然而,这种情况在企业规模上您将使用中间件解决方案,即单独的消息队列/总线" WPF客户端订阅并获取其更新的基础结构。如果没有订阅,则将消息发送到/ dev / null。 "服务"无论如何都要把所有东西都发布到公共汽车上。