在多台机器上运行的C#Windows服务?

时间:2011-04-20 14:24:35

标签: c# .net wcf windows-services

我正在尝试创建一个托管在Windows服务中的WCF服务。此Windows服务将部署在多台计算机上(根据负载,可变数量的计算机)。将有一个业务层将排队“作业”并将每个作业传递给其中一个Windows服务,具体取决于哪一个是免费的。

我对如何实现这一点感到有点困惑。我是否编写WCF并托管Windows服务,将它们安装到我需要的任何机器上。然后从将要发送作业到这些服务的层,我以某种方式告诉它要发送到哪台机器(通过WCF服务接口)。这就是我对如何做的最困惑。

3 个答案:

答案 0 :(得分:4)

我做了这件事。您所描述的内容是正确的(尽管保持节点同步并且不允许它们相互踩在分布式环境中可能很粗糙)。为了定位端点,我建议使用http://msdn.microsoft.com/en-us/library/ee354381.aspx中描述的WS-Discovery。如果您不使用.NET4,您仍然可以使用服务或端点行为自行实现发现。

答案 1 :(得分:2)

与任何其他WCF服务一样,您的服务将公开端点。客户端将像正常一样简单地发送到这些端点。

也许你不熟悉代理构造函数的重载?有些接受端点地址,允许客户端选择使用哪个服务端点。

答案 2 :(得分:1)

您正在谈论NLB解决方案。