2

我有一个由两个服务 service1 和 service2 组成的 windows 服务项目。我们如何在两个服务之间进行通信?例如,我们如何让 service2 由 service1 启动?我可以使用 ServiceController 类来执行此操作吗?你会建议做什么?

4

2 回答 2

7

ServiceController 类包括一个采用 int 的 ExecuteCommand 方法。因此,如果您可以使用非常有限的参数,您的两个服务可以通过相互发送 ExecuteCommand 消息进行通信。

但是,正如其他发帖人评论的那样,WCF 可能是一个更好的答案。您可以在两个服务之间创建命名管道或使用 HTTP。下面可以找到两个很好的教程页面。

带有示例的基本 WCF 教程

更复杂的 WCF,例如,如果您想“伪造”代表

希望有帮助。

于 2011-12-21T16:34:09.820 回答
6

如果“通信”您的意思只是启动和停止 Service2,ServiceController那么应该使用。

如果您需要其他类型的通信,例如将一些数据从一个发送到另一个,这ServiceController将无济于事,您应该使用WCF

希望这可以帮助

于 2011-12-21T16:21:06.533 回答