netTCPBinding を使用して、二重チャネルで動作する WCF サービスと WCF クライアントがあります。
接続ユーザーを辞書に保存します ( Dictionary<int userID,CallbackInstance instance>
)
ユーザーが定期的に切断する場合は、サービスから切断を呼び出して、接続済みユーザー リストからユーザーを削除します。それは正常に動作します。
しかし、クライアント pc が不規則に切断されると、クライアントは Disconnect メソッドを呼び出すことができず、クライアントは接続されたユーザー リストに残っているため、これが問題です。私のWCFサーバーがコールバックのためにオンラインユーザーのサーバーをチェックすると、サーバーはクライアントのコールバックメソッドを呼び出そうとしますが、クライアントが利用できず、WCFサーバーアプリがクラッシュします。
コールバック インスタンスを呼び出す前にクライアントのステータスを確認することはできますか?