如何在Windows服务之间进行通信
我有2个使用C#创建的Windows服务。
我想在第二个Windows服务中调用一个函数的服务之一。
我该怎么办?
编辑:
问题是我必须运行应用程序(我不需要它们而不是服务进程也很好)但我需要这个2应用程序进行通信,这2个应用程序在同一台服务器上,
当然。 您可以使用许多IPC机制。 远程处理,TCP / HTTP侦听器等
这两种服务是否提供在其他服务之外可能有用的function?
请参阅此主题以获取更多想法: C#中的IPC机制 – 使用和最佳实践
编辑:正如Davide Piras所指出的,如果您可以使用WCF,那么请考虑使用它。 它将简化生活。 WCF配置文件有时很难掌握,但也有一个很好的工具: http : //msdn.microsoft.com/en-us/library/ms732009.aspx
我发现所有其他答案都正确但有点太复杂(WCF是一个大问题)并且不可扩展(内存和命名管道只能在同一个服务器上运行)。 我建议你使用DotNetMQ消息系统。 它易于使用和部署,甚至可以在不同服务器上运行的进程之间进行通信。
服务是否在同一个盒子上? 你有.NET 4吗? 强烈建议使用尽可能快的模式, 内存映射文件 。
如果它们位于同一个盒子上,但您没有.NET 4,或者处于同质的Microsoft Windows网络中,则命名管道可以正常工作。 更重要的是,我在命名管道上使用WCF 。
- 在运行时提供ServiceKnownType?
- 在WCF数据服务中使用枚举
- 你能通过WCF服务传递Func 吗?
- 使用wsDualHttpBinding超时通过Internet连接到WCF服务
- 通常被接受的方法来避免每个派生类的KnownType属性
- 我一直在客户端获得WCF服务处于故障状态。 如何在不破坏我的WCF服务的情况下捕获WCFexception?
- WCF服务:如何查找服务器日志以了解错误?
- HTTP / 1.1 415无法处理消息,因为内容类型为’application / json; charset = utf-8’不是预期的类型’text / xml; 字符集= UTF-8′
- 服务引用不是创建方法