コンソール アプリでホストされている NetTcpBinding と DuplexChannel の WCF サービスがあります。クライアントは WCF サービスに「サブスクライブ」し、リストへのコールバックを収集します。クライアント側では、Faulted イベントと Closed イベントにハンドラーをアタッチしました。それらを受け取ったら、クライアントを再接続するだけです。
サービスのクラッシュをテストするとき、私は奇妙な動作をします (私の場合): クライアントとサービスの両方が localhost でテストされると、WCF サービス プロセスを強制終了し、クライアントは Faulted イベントを受け取り、サービスが終了するまで常に再接続を試みます。再び生きています。
運用サーバーにサービスをデプロイし、クライアントが別のコンプ (同じドメインではなくインターネット経由) にある場合、ホスティング プロセスを強制終了すると、クライアントは障害に関する通知を受け取りませんが、適切な方法で閉じることができます。リスト内のすべてのコールバックにアボートが送信されたときにアプリを適切な方法で閉じると、クライアントは障害イベントを取得し、適切に再サブスクライブを試みます。
問題は、なぜこれが起こっているのかということです。問題は、生きた接続を維持する方法ではありません。別の方法でそれを行う方法を見つけたと思います(信頼できるセッションまたはサービスへのping)
展開時にイベントの動作が異なるのはなぜですか? 構成は同じです-何も変更していません。