2010-04-20 129 views
0

很容易显示Windows服务的状态或从GUI应用程序控制它(启动/停止),但问题是否如何从服务接收/发送通知?就像:告诉用户监视它需要注意的服务。如何在服务控制器和服务/守护进程之间进行通信?

请考虑您可以在多用户环境中随时启动多个控制器。

你知道这种通信的例子(开源)吗?

加分的平台独立的解决方案:)

回答

0

如果“用户”监视服务是一个人,怎么样写事件日志,然后让你的企业事件监控系统发送警报。或者,让服务将问题记录到事件日志中,然后发送电子邮件。

如果服务的“用户”或客户端是单独的或多个应用程序,这里有一些想法,但没有完全说明您的问题。

  1. 写入文件。让客户端告诉服务器什么文件或一些商定的令牌为该特定的客户端实例创建一个文件,然后让服务写入该文件。客户端可以监视文件。
  2. 状态Ping。让客户端在后台线程中定期ping服务以询问服务的运行情况。如果不健康,那么客户可以ping服务以获取更多信息。有点像得到LastMessage。
  3. 打开套接字或结束点。找到一种方法来设置服务通信,以便服务可以调用客户端。这可以由客户首先告诉服务在哪里它可以回叫。我忘记了具体细节,但WCF应该能够为您处理这个开箱即用的问题。如果你想要更通用的东西,你可能需要推出自己的产品。
希望这些想法有所帮助。

0

作为一个选项,使用我们的MsgConnect(免费提供)在服务和控制器(跨平台)之间发送消息。服务和控制器之间的通信可以在本地(通过MMF或套接字传输)和远程(通过套接字传输)进行。

+0

“适用的开放源代码”......这意味着MsgConnect是一种商业产品。 – sorin 2010-04-20 15:30:12

+0

有一个适用于Unix/Linux平台的GPL版本。 – 2010-04-20 16:36:47