3 つの異なる二重 WCF チャネルをホストする Windows サービスがあります。クライアントは、コールバック コントラクトを介して更新を送信するために接続できます。基本的に 3 つの pub-sub チャネルがあります。
このサービスは、クライアントが接続されている場合、バウンスに時間がかかります。への呼び出しが返されるServiceHost.Close
までに 10 秒かかります (したがって、サービスが停止するまでに 30 秒以上かかります)。my closeTimeout
in config は 10 秒であることがわかります。この値を変更すると、これが問題の原因であることを示します。
すぐにチャネルを閉じるにはどうすればよいですか? 何かがタイムアウトしているという考えは好きではありません。を呼び出すこともできますAbort
が、もっと良い方法があるはずです。これまで非二重チャネルでこれを見たことがないので、二重であることと関係があると思います。
理想的には、チャネルに障害が発生したことをクライアントにすぐに通知して、ユーザーが更新が停止したことをすぐに確認できるようにすることです。