进程间通信选项

时间:2013-08-26 05:54:36

标签: c# wcf named-pipes inter-process-communicat

我需要在一个应用程序内订阅其他应用程序公开的事件。 我注意到许多人认为使用WCF命名管道是最佳实践。 我是对的,如果我选择WCF命名管道,我将不得不使用IIS?

顺便说一下,我一般有哪些选择?

2 个答案:

答案 0 :(得分:5)

Named pipes是在同一台机器上进行IPC(进程间通信)的最快方法之一。已经存在了很长一段时间(NT4是第一个操作系统?)而不是特定于WCF。

但是,我不会通过ASP.NET使用WCF /命名管道,因为IIS不使用命名管道进行通信。这意味着如果IIS暂时没有收到HTTP请求,您的应用将关闭。

如何托管IPC取决于应用程序的类型。如果您希望始终运行服务器,则应将其托管在Windows服务中。否则,您可以将其包含在桌面应用程序中。

您不一定要使用WCF,您可以直接使用命名管道(查看我的消息开头的链接)。这一切都取决于你的沟通有多复杂。

答案 1 :(得分:3)

  

我是对的,如果我选择WCF命名管道,我将不得不使用IIS顺便说一句,我一般有哪些选项?

不,不是真的。虽然这是一个选项,但您也有其他选择。像,

  • 自托管服务
  • 在Windows服务中托管
  • 使用Internet信息服务(IIS)托管

    您可以详细阅读here

甚至在WCF和WCF之前存在命名管道肯定不是使用它们的唯一方法