进程间通信选项

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

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

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

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

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

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

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

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

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

    你可以在这里详细阅读。

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