我目前有一个Windows服务和一个面向.NET 3.5的单独GUI客户端,我正在尝试找到在这两个进程之间进行双向通信的最佳方法。这两个进程都将在同一台Windows机器上运行。
Microsoft Interprocess Communications page似乎建议在此特定情况下使用 RPC,管道或套接字。
我认为命名管道似乎满足了我的要求,但环顾四周我也遇到了.NET Remoting。似乎.NET Remoting已经集成到了 WCF为from .NET 3.0。根据我的理解,WCF使用'命名管道'来进行通信between processes所以我猜测.NET远程处理和'命名管道'在某种程度上重叠。
有人可以清楚这一点吗?我想了解我是否应该使用命名管道, .NET Remoting 或 WCF 。
答案 0 :(得分:1)
WCF取代了.NET Remoting和旧版(现在的旧版)ASMX Web服务。 WCF NetNamedPipe
绑定是双工的(即,支持双向通信),并且由于客户端(GUI应用程序)和Windows服务都在同一台机器上,因此命名管道是理想的。
但是,要利用WCF,您必须编写WCF服务,并使用Windows服务来托管它,GUI应用程序充当客户端。完全可以这样做,网上有很多关于如何在Windows服务中托管WCF服务的例子。