.Net リモーティングを使用して C# でクライアント/サーバー モデルを作成しました。クライアントがサーバーに接続されている場合、サーバーがダウンしている間にクライアントからサーバーメソッドを呼び出そうとせずにサーバーを強制終了して再起動すると、問題なく再接続できます。
サーバーを閉じてからクライアントからサーバーにpingを実行しようとすると(無限の待機を避けるために別のスレッドから実行します)、サーバーがオンラインに戻ったときに、クライアントはサーバーと通信できず、起動されたPingスレッドダウンタイムの間、リモーティング ライブラリの奥深くで永遠に待機します。これを中止しようとしましたが (スレッドに参加しようとしてしばらくして失敗した場合)、中止しません。これが問題の一部であるかどうかは疑問です。
別のクライアントを起動すると、そのクライアントはサーバーと問題なく通信できます。元のクライアントの一部を再起動する必要があると考えましたが、何をシャットダウンする必要があるかわかりません。私は確かに接続しているサーバーを無効にし、同じアドレスで Activator.GetObject を呼び出します (2 番目のクライアントがサーバーに接続するために行うことで、問題なく動作します) が、サーバーを再取得してもまったく役に立ちません。
サーバーは、RegisterWellKnownServiceType を介してシングルトンとして実行されています。