在.NET中,ServiceController类允许您使用ExecuteCommand方法向服务发送自定义命令。
我希望能够查询服务的状态(一个自定义的状态概念,而不是‘启动/停止’的变化)。我希望使用类似于ExecuteCommand的东西调用服务并获得一个指示状态的返回值,这样做会很简单。ServiceController中有没有什么东西可以让我这样做呢?
假设没有,我想我必须使用某种外部进程间通信技术(例如,服务将其状态写入数据库或消息队列)。对于简单性,你有什么建议?
发布于 2013-01-24 17:52:55
在ServiceController中肯定没有一种方法。让WCF成为最好的选择。教程在这里:http://www.switchonthecode.com/tutorials/wcf-tutorial-basic-interprocess-communication
发布于 2015-07-31 07:04:36
Windows提供了许多进程间通信(IPC)的方法。@David是对的,ServiceControllers不能执行此操作,他很好地向您指出了WCF,这是一个现成的IPC功能的基础。使用IPC,您可以在ExecuteCommand调用之后协调您的服务和应用程序。
如果你不想使用WCF,你可以实现一个管道(匿名管道在这种情况下似乎是正确的)或者使用windows套接字。
在IPC上查看MSDN上的this link,它是你可以选择的多种途径的一个很好的先行者。
https://stackoverflow.com/questions/14159211
复制相似问题