【问题标题】:IPC methods for Windows ServiceWindows 服务的 IPC 方法
【发布时间】:2016-11-21 09:23:24
【问题描述】:

我目前有一个 Windows 服务和一个单独的面向 .NET 3.5 的 GUI 客户端,并且正在尝试找到在这两个进程之间进行双向通信的最佳方法。这两个进程将在同一台 Windows 机器上运行。

Microsoft Interprocess Communications page 似乎建议在这种特殊情况下使用 RPC、管道或套接字

我认为 Named Pipes 似乎可以满足我的要求,但环顾四周我也遇到了 .NET Remoting 。 .NET Remoting 似乎已集成到 WCF 为from .NET 3.0。据我了解,WCF 使用“命名管道”进行通信 between processes,所以我猜测 .NET 远程处理和“命名管道”以某种方式重叠。

有人可以解决这个问题吗?我想了解我应该使用 Named Pipes.NET Remoting 还是 WCF

【问题讨论】:

  • WCF 和 .NET Remoting 是类似的技术,.NET Remoting 本质上是 WCF 的旧版本。命名管道是一种通信机制,它可以被 WCF 使用(TCP、HTTP、MSMQ 等也可以)。双向到底是什么意思?
  • 双向我的意思是服务和gui进程都应该能够发送和接收数据。

标签: wcf windows-services .net-3.5 named-pipes .net-remoting


【解决方案1】:

WCF 取代了 .NET Remoting 和旧的(现在是旧的)ASMX Web 服务。 WCF NetNamedPipe 绑定是双工的(即支持双向通信),并且由于客户端(GUI 应用程序)和 Windows 服务位于同一台机器上,因此命名管道是理想的选择。

但是,要利用 WCF,您必须编写 WCF 服务,并使用 Windows 服务来托管它,而 GUI 应用程序充当客户端。这是完全可以做到的,网上有很多关于如何在 Windows 服务中托管 WCF 服务的示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 2011-10-30
    • 2018-05-13
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    相关资源
    最近更新 更多