C# &引用;“正确”;与本地Windows服务通信的方式

C# &引用;“正确”;与本地Windows服务通信的方式,c#,.net,windows,windows-services,C#,.net,Windows,Windows Services,与本地运行的Windows服务通信的“正确”或“典型”方式是什么 我可以看出,使用WCF打开HTTP或TCP端点非常简单,但这两种都是真正的网络协议 我应该选择什么协议来调用方法并从本地windows服务接收响应?您可以使用: 套接字通信(TCP、HTTP或其他):即使你说它们是网络协议,优点是你可能已经知道它们 命名管道:对于在同一节点上运行的进程之间的通信,这是一个很好的选项: 共享内存:这是最快的 其他第三方、更高级别、类似库的使用套接字的Thrift 取决于服务组件本身(以及需要执行的

与本地运行的Windows服务通信的“正确”或“典型”方式是什么

我可以看出,使用WCF打开HTTP或TCP端点非常简单,但这两种都是真正的网络协议

我应该选择什么协议来调用方法并从本地windows服务接收响应?

您可以使用:

  • 套接字通信(TCP、HTTP或其他):即使你说它们是网络协议,优点是你可能已经知道它们
  • 命名管道:对于在同一节点上运行的进程之间的通信,这是一个很好的选项:
  • 共享内存:这是最快的
  • 其他第三方、更高级别、类似库的使用套接字的Thrift

取决于服务组件本身(以及需要执行的操作)…@user2864740,有哪些服务选项?我以为只有标准的Windows服务?您在
services.msc
中看到的问题。这个问题是关于“服务”还是特定服务的?标准[windows]服务没有一种工作方式。我正在编写一个新的windows服务,我想知道最好的办法是允许另一个应用程序与它对话。我不需要极快的速度,只要足够好,我想命名管道将是最安全的选择,除非你能想到任何潜在的问题?@BanksySan,我还将使用命名管道。Microsoft提供了一些可以复制和修改的示例。它有一些小技巧,你可以在做的时候学习。乍一看,从你所说的来看,这似乎是最好的选择。嗨,伙计们,我仔细阅读了答案,关于命名管道,我知道对于跨不同计算机的双工进程通信来说,它是合适的,但最近我阅读了一个名为Signal的新API,或者至少对我来说是新的。。。我想知道这是否是命名管道的替代品,或者它与命名管道相比如何?@willimon也许你可以分析它并添加另一个响应。这将有助于我们了解更多信息。实际上,我决定创建一个具有以下配置的示例测试:一个带有按钮的网站,该按钮调用来自中心类的操作。然后我创建了一个windows服务,通过使用SignalR客户端,我能够订阅我已经在internet上发布的网站上的活动。结果是双工通信速度非常快,并且只需很少的努力。