通过单独的应用程序控制服务

时间:2010-08-24 03:53:12

标签: c# wcf com windows-7 service

我正在写一个Windows服务来做一些日常处理,我希望有一个用户友好的方式与它进行交互。我只会做一些基本的事情,比如检查它的状态和查看日志,虽然我可能会决定我也想要一两个函数调用。在做了一些研究后,听起来我需要一个单独的应用程序来执行这些功能,因为服务将独立于登录到主机的任何用户运行。我的想法是让这个应用程序通过某种界面与服务进行交互,但我不知道从哪里开始。

让应用程序与单独服务进行通信的最简单方法是什么?我会使用COM,WCF,消息队列还是其他东西?我知道可能有几种方法可以做到这一点,所以我希望听到一些利弊,如果可能的话。

编辑:服务和应用程序都将在同一台计算机上运行。

3 个答案:

答案 0 :(得分:1)

理想情况下,您将创建一个单独的应用程序并使用WCF在您的服务和此应用程序之间进行通信。

但是有一种“更便宜”的方法是使用HttpListener实现自己的简单Web服务器。见http://msdn.microsoft.com/en-us/magazine/cc163879.aspx

这样可以轻松接受一些简单的命令,您可以使用任何Web浏览器发送它们。

为了查看日志,为什么不只是拖尾日志文件(使用例如baretail)?

答案 1 :(得分:1)

将WCF与NetNamedPipeBinding一起使用(仅允许在同一台计算机上使用IPC)或.NET Remoting。如果您想快速选择您更熟悉的技术。如果您不熟悉这些技术中的任何一种,请选择WCF,因为它是较新的,并且您将来可能会再次使用它 - 因此使用它会很有用。

答案 2 :(得分:0)

跳过WCF,只使用普通的.NET Remoting。这么容易多了。为什么他们称之为弃用,天知道。

编辑:看到它在同一台PC上运行,传输将是命名管道,IIRC WCF也支持它。