プロセス間通信(IPC)をデフォルトの設定で実行している場合、一定時間リモート接続がないと自動的に切断されてしまいます。
その状態でクライアントから接続しようとすると下のような例外がスローされます。
この問題を回避するには、リモートオブジェクトクラスで MarshalByRefObject の InitializeLifetimeService をオーバーライドしてnullを返すことでインスタンスの有効期間を無効化します。
using System; namespace IpcSample { public class IpcRemoteObject : MarshalByRefObject { public int Counter { get; set; } /// <summary> /// 自動的に切断されるのを回避する /// </summary> public override object InitializeLifetimeService() { return null; } } }