我需要在一个应用程序内部订阅另一个应用程序公开的事件。 我注意到许多人认为使用 WCF 命名管道是最佳实践。 如果我选择 WCF 命名管道,我将不得不使用 IIS,我说得对吗?
顺便问一下,我通常有哪些选择?
最佳答案
Named pipes是在同一台机器上执行 IPC(进程间通信)的最快方法之一。它们已经存在了很长时间(NT4 是第一个操作系统吗?)并且不特定于 WCF。
但是,我不会通过 ASP.NET 使用 WCF/命名管道,因为 IIS 不使用命名管道进行通信。这意味着如果 IIS 有一段时间没有收到 HTTP 请求,您的应用程序将关闭。
您应如何托管 IPC 取决于应用程序的类型。如果你想让你的服务器一直运行,你应该将它托管在 Windows 服务中。否则,您可以将其包含在您的桌面应用程序中。
不一定非要用WCF,可以直接用命名管道(看我帖子开头的链接)。这完全取决于您的沟通有多复杂。
关于c# - 进程间通信选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18437474/