クライアントへのコールバック参照のリストを(メモリ内に)保持する二重wcfサービスがあります。wcf サービスには、Subscribe と Unsubscribe の 2 つの方法があります。
1つのwcfサーバーと複数のクライアントですべて正常に動作します。Wcfルーターサービスを使用して負荷分散を行う2つのwcfサーバーを導入したときに問題が発生しました。
たとえば、2 つの wcf サーバー (wcf1 と wcf2) と 1 つのルーター サーバー (r1) があります。クライアントがルーター エンドポイントに対して "Subscribe" を呼び出すと、その要求が wcf1 サーバーと wcf2 サーバーの両方にブロードキャストされます。どちらもクライアントへのコールバック参照を保持するようにします。問題は、wcf サーバーの 1 つがダウンしたときに始まります。wcf1 サーバーがダウンすると、すべてのサブスクリプションが失われます。そのため、アクティブに戻ったときに、コールバックを実行するために使用できるサブスクリプションはなく、クライアントに再サブスクライブするように通知する方法はありません。
クライアント側で fault イベントをリッスンしてみました。ルーターのエンドポイントに接続しているため、トリガーされません。このイベントは、ルーター サーバーがダウンしている場合にのみ発生します。
誰かが私のような問題に直面しましたか? 私は何か間違ったことをしていますか?