WCF实现进程间通信

3
我开发了一个使用 WCF 通过 NetNamedPipeBinding 协议进行通信的.NET UI 和 windows 服务。我选择 NetNamedPipe 是因为这是在同一台机器上进行进程间通信的最佳和高效选择。
然而,该应用程序的一个关键要求是 UI 应该能够异步地向 Windows 服务发送操作并反过来。这意味着 Windows 服务应该能够回调 .NET UI 应用程序,而不需要 .NET UI 应用程序首先连接到 Windows 服务。
考虑到这一点,我在 Windows 服务中托管了一个 WCF 服务,并在 .NET UI 应用程序中单独托管了一个 WCF 服务,以便它们可以异步通信,而无需始终保持通信渠道处于活动状态。
我想知道这是否是一个好的设计方案。
感谢您提前的评论。
Subbu
3个回答

1
在客户端中托管另一个WCF服务以接收主WCF服务的调用并不是一个好主意。您需要使用WCF双工通信(如Subbu发布的)即WCF回调。 WCF:双工操作和UI线程

谢谢Islam!你的帖子很有帮助。不幸的是,我只能在我的帖子中选择一个答案,并选择了第一个回复,因为它与我的问题相同。 - Subbu

0

0

这种方法的问题在于您的服务需要作为主机连接到客户端。

更好的选择可能是在首次启动客户端时设置WCF回调。然后,服务可以使用回调进行服务到客户端的通知。有关详细信息,请参见此MSDN文章,其中显示了如何使用WCF回调。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接