我有一个托管三个不同双工 WCF 通道的 Windows 服务。客户端可以连接以通过他们的回调合约将更新发送给他们。本质上存在三个 pub-sub 频道。
当客户端连接时,此服务需要很长时间才能反弹。调用ServiceHost.Close
需要 10 秒才能返回(因此服务需要 30 多秒才能停止。)结果我closeTimeout
的 in config 是 10 秒。更改此值表明这是问题的原因。
我该怎么做才能及时关闭频道?我不喜欢某些事情正在超时的想法。我可以打电话Abort
,但似乎必须有更好的方法。我以前没有在非双工频道上看到过这种情况,所以假设这与它是双工的有关。
理想情况下,将立即通知客户端通道出现故障,以便用户可以立即看到更新已停止。