WCF - 如果在连接客户端时关闭,则关闭双工ServiceHost阻止CloseTimeout持续时间

Dre*_*kes 5 .net wcf servicehost duplex-channel

我有一个Windows服务,托管三个不同的双工WCF通道.客户端可以连接以通过其回调合同向他们发送更新.基本上有三个pub-sub频道.

连接客户端时,此服务需要很长时间才能反弹.调用ServiceHost.Close需要10秒才能返回(因此服务需要30秒以上才能停止.)事实证明我closeTimeout的配置是10秒.更改此值表示这是问题的原因.

我该怎样做才能及时关闭频道?我不喜欢有些东西超时的想法.我可以打电话Abort,但似乎必须有更好的方法.我之前没有在非双工通道上看过这个,所以假设它与双工通信有关.

理想情况下,客户端会立即收到通道出现故障的通知,以便用户可以立即看到更新已停止.

ado*_*ntz 1

也许,最好的方法是通知客户端(你有双工,所以你可以)并让客户端关闭通道。