Windows服务到Windows应用程序& Web应用程序技术选项 - 优点&缺点

时间:2013-12-10 02:15:00

标签: c# wcf web-services windows-services msmq

我们目前正在实施一项Windows服务,该服务需要发布Windows或Web应用程序可以订阅的信息。发布的信息应主要由字符串组成,并将用于记录服务正在执行的任务,因此将有一个恒定的信息流发送到订阅的应用程序。

我一直在研究MSMQ,WCF和ESB(如Nservicebus)等技术,但由于我对使用Windows服务和应用程序订阅都很陌生,所以到目前为止很难了解其优势。每个和哪个(如果有的话)将是这类项目的理想选择。任何更熟悉这些选项的人都可以提供这些技术提供的一些优点/缺点吗?

为了更好地总结我之前的段落,该项目预计将在以下条件下运作:

  1. 消息不断从服务发布到任何订阅的应用程序
  2. 通信应该是单向的(服务应用程序),因此任何应用程序的停机时间都不应影响服务的工作
  3. 该服务必须发布到Windows应用程序和Web应用程序
  4. 将来可能需要订阅新应用程序而不会中断服务的工作(看起来像是给定的,但正如我所说,我不熟悉这些选项)
  5. 该程序的首选语言是C#。
  6. 非常感谢您的时间,我们将非常感谢您对这些或更合适的技术的任何建议。

1 个答案:

答案 0 :(得分:1)

围绕MSMQ和WCF有很多选择。根据许多因素,有几种不同的方法和框架可以提供帮助。

如果你想自己做一点指导,我建议你看看Tom Hollanders的好帖子:

http://blogs.msdn.com/b/tomholl/archive/2008/05/17/building-a-pub-sub-message-bus-with-wcf-and-msmq.aspx

http://blogs.msdn.com/b/tomholl/archive/2008/07/12/msmq-wcf-and-iis-getting-them-to-play-nice-part-1.aspx

如果您使用现有的Servicebus,例如BizTalk,nServiceBusMassTransit,还有其他更“完整”的选项。

另一个选项是自MSMQ 3.0以来可用的多播,这种功能可以支持多个接收者(你的windowsapp和webapp)有一个发布者(你的Windows服务)的场景。发送方和接收方都可以使用MsMqIntegration绑定与队列进行交互。

我建议你看一下:http://blogs.msdn.com/b/solutions/archive/2005/09/20/471615.aspx