2013-01-04 163 views
1

在.NET中,ServiceController类允许您使用ExecuteCommand方法向服务发送自定义命令。ServiceController.ExecuteCommand:如何获取数据

我希望能够查询服务的状态(自定义的状态概念,而不是'Started/Stopped')。我希望能够使用类似于ExecuteCommand的服务打电话给服务并获得指示状态的返回值。 ServiceController中有什么东西可以让我做到这一点?

假设不是,我想我必须使用某种外部进程间通信技术(例如,服务将其状态写入数据库或消息队列)。你会为了简单而推荐什么?

回答

0

Windows提供了多种进程间通信(IPC)方法。 @David是正确的,ServiceControllers无法执行此操作,他很高兴向您指出WCF,它是一个基于IPC功能的基础。使用IPC,您可以在ExecuteCommand调用后协调您的服务和应用程序。

如果你不想远到WCF你可以实现一个管道(匿名管道似乎适合这种情况)或使用Windows套接字。

从MSDN上查看this link在IPC上,它是您可以采用多种途径的好方法。