Wcf路由器 - 双工服务 - 重新订阅

时间:2013-09-26 11:31:48

标签: wcf c#-4.0 duplex wcf-routing

我有一个双工wcf服务,它保存(在内存中)对其客户端的回调引用列表。在wcf服务上有两种方法订阅和取消订阅。

它与一个wcf服务器和多个客户端一起工作正常。当我使用Wcf路由器服务引入两个带负载均衡的wcf服务器时问题就出现了。

例如 - 我有两个wcf服务器(wcf1和wcf2)和一个路由器服务器(r1)。当客户端调用“订阅”到路由器端点时,它会将该请求广播到wcf1和wcf2服务器。这样他们俩都会持有对客户端的回调引用。当其中一个wcf服务器关闭时,问题就开始了。如果wcf1服务器出现故障,那么所有订阅都将丢失。因此,当它恢复活动时,它没有可用于执行回调的订阅,并且无法通知客户重新订阅。

我试着在客户端听故障事件。这不会被触发,因为它连接到路由器端点。只有在路由器服务器关闭时才会触发该事件。

有没有人遇到类似的问题?我做错了吗?

1 个答案:

答案 0 :(得分:0)

处理此问题的唯一方法是将回调列表保留在某种可共享资源中,例如数据库,缓存,甚至是共享驱动器上的文件。启动时,每个服务实例都可以访问它,因此所有回调都会在发生故障时重新加载。

对不起,这可能不是你想要的。