在 .NET 中,该类允许您使用该方法ServiceController
向服务发送自定义命令。ExecuteCommand
我希望能够查询服务的状态(状态的自定义概念,而不是“开始/停止”种类)。我希望使用类似的方法调用服务ExecuteCommand
并获得指示状态的返回值会很简单。有什么东西ServiceController
可以让我做到这一点吗?
假设不是,我想我必须使用某种外部进程间通信技术(例如,服务将其状态写入数据库或消息队列)。为了简单起见,您会推荐什么?
在 .NET 中,该类允许您使用该方法ServiceController
向服务发送自定义命令。ExecuteCommand
我希望能够查询服务的状态(状态的自定义概念,而不是“开始/停止”种类)。我希望使用类似的方法调用服务ExecuteCommand
并获得指示状态的返回值会很简单。有什么东西ServiceController
可以让我做到这一点吗?
假设不是,我想我必须使用某种外部进程间通信技术(例如,服务将其状态写入数据库或消息队列)。为了简单起见,您会推荐什么?
肯定是没有办法进去的ServiceController
。离开 WCF 大概是最好的选择。教程在这里:http ://www.switchonthecode.com/tutorials/wcf-tutorial-basic-interprocess-communication
Windows 提供了许多进程间通信 (IPC) 方法。@David 是对的,ServiceControllers 无法执行此操作,他很高兴将您指向 WCF,它是带有 IPC 功能的现成基础。使用 IPC,您可以在 ExecuteCommand 调用之后协调您的服务和应用程序。
如果您不希望像 WCF 那样走得那么远,您可以实现一个管道(匿名管道似乎适合这种情况)或使用 Windows 套接字。
在 IPC 上查看来自 MSDN 的此链接,它是您可以采取的多种途径的绝佳起点。