如何在Windows服务之间进行通信

时间:2012-01-23 14:49:10

标签: c# wcf service windows-services ipc

我有2个使用C#创建的Windows服务。

我想在第二个Windows服务中调用一个函数之一。

我该怎么做?

编辑:

问题是我必须运行应用程序(我不需要它们,而不是服务进程也很好)但我需要这个2应用程序进行通信,这2个应用程序都在同一台服务器,

3 个答案:

答案 0 :(得分:4)

不确定。您可以使用许多IPC机制。远程处理,TCP / HTTP侦听器等

这两项服务是否提供在其他服务之外可能有用的功能?

有关更多想法,请参阅此主题: IPC Mechanisms in C# - Usage and Best Practices

编辑: 正如Davide Piras指出的那样,如果您可以使用WCF,那么请考虑使用它。它将简化生活。 WCF配置文件有时很难掌握,但也有一个很好的工具: http://msdn.microsoft.com/en-us/library/ms732009.aspx

答案 1 :(得分:4)

我发现所有其他答案都是正确的,但有点太复杂(WCF是一个大问题)并且不可扩展(内存和命名管道只能在同一个服务器上运行)。我建议你DotNetMQ邮件系统。它易于使用和部署,甚至可以在不同服务器上运行的进程之间进行通信。

答案 2 :(得分:3)

服务是否在同一个盒子上?你有.NET 4吗?强烈建议使用尽可能最快的模式memory-mapped files

如果它们位于同一个盒子上,但您没有.NET 4,或者处于同质的Microsoft Windows网络中,named pipes可以正常工作。更重要的是,我会使用WCF over a named pipe

相关问题