如何在与应用程序交互的C#上组织Windows服务?

时间:2012-06-15 12:54:03

标签: c# service windows-services communication

我需要组织一下应该与应用程序交互的Windows服务:

应用程序生成消息,然后以某种方式将此消息发送到正在运行的服务(实际上有问题。如何?套接字?其他?),然后服务对此消息做了一些工作。

应用程序可能会使用一些中间层 - 一个接受消息作为参数的可执行应用程序,然后将其发送给服务。

那么我的服务如何与应用程序交互?

4 个答案:

答案 0 :(得分:1)

简短回答:通过TCP绑定使用WCF。 这是一个例子。 http://www.codeproject.com/Articles/14493/WCF-Basic-Client-Server

答案 1 :(得分:1)

一些建议:

  • 在Windows服务中托管WCF服务。可以找到详细的示例here。绑定(Http,Tcp,命名管道等)依赖于调用应用程序,所有这些都将无缝地工作。 WCF是Micorosoft的统一编程模型,因此这是推荐的方法。

  • 如果您受限于.NET 2.0或更早版本,您的Windows服务可以实施轮询机制来扫描来自应用程序的“消息”。例如。您的应用程序可以将新记录插入到由Windows服务监视的数据库中。

希望这有帮助。

答案 2 :(得分:0)

只是为已经提到的选项添加另一个选项:我在类似的情况下使用了MSMQ

答案 3 :(得分:0)

你需要解释一下你的情景。

消息传递是通过单向还是双向传递?互动频率如何?两个应用程序都在同一个环境中?他们是否必须通过网络进行互动?

这个问题有一系列解决方案:使用简单的文件,套接字,数据库,Windows注册表......