RoutingService通道会话错误转发

时间:2012-03-08 09:53:13

标签: .net wcf wcf-routing

我有以下服务布局:

  • RoutingService作为IDuplexSessionRouter,自托管,public over net.tcp,配置为将请求转发到root / IService1到服务A,/ IService2转发到服务B,依此类推
    • 服务A作为IService1,双工,自托管,带会话,通过net.pipe随机路径
    • 服务B为IService2,双工,自托管,带会话,通过net.pipe随机路径
    • ...
    • 服务*,..

我这样做是因为我不希望每个服务都有一个端口,我不想使用端口共享。

我遇到的问题是,当我使用net.tcp绑定在ServiceHost中托管服务A时,使用通道工厂打开一个通道并通过调用方法启动会话,然后关闭或中止ServiceHost,I可以在客户端通道的ICommunicationObject接口上观察Faulted或Closed事件。当服务位于RoutingService后面时,只有在我调用服务上的方法后才会出现故障事件。否则客户仍然认为他已连接。

所以我想知道在底层渠道出现故障时是否有可能说服RoutingService关闭客户端会话?我认为实现此目的的唯一方法是在RoutingService后面的服务上连续调用心跳操作。

0 个答案:

没有答案