C# · 12月 23, 2021

c# – 进程间通信选项

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

顺便说一句,我一般有什么选择?

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

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

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

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