2

在 .NET 中,该类允许您使用该方法ServiceController向服务发送自定义命令。ExecuteCommand

我希望能够查询服务的状态(状态的自定义概念,而不是“开始/停止”种类)。我希望使用类似的方法调用服务ExecuteCommand并获得指示状态的返回值会很简单。有什么东西ServiceController可以让我做到这一点吗?

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

4

2 回答 2

1

肯定是没有办法进去的ServiceController。离开 WCF 大概是最好的选择。教程在这里:http ://www.switchonthecode.com/tutorials/wcf-tutorial-basic-interprocess-communication

于 2013-01-24T09:52:54.670 回答
0

Windows 提供了许多进程间通信 (IPC) 方法。@David 是对的,ServiceControllers 无法执行此操作,他很高兴将您指向 WCF,它是带有 IPC 功能的现成基础。使用 IPC,您可以在 ExecuteCommand 调用之后协调您的服务和应用程序。

如果您不希望像 WCF 那样走得那么远,您可以实现一个管道(匿名管道似乎适合这种情况)或使用 Windows 套接字。

在 IPC 上查看来自 MSDN 的此链接,它是您可以采取的多种途径的绝佳起点。

于 2015-07-30T23:04:36.073 回答