多数のスレーブ プロセスを開始する Windows サービスを作成しています。これらのスレーブ プロセスのそれぞれで、マスター プロセスからのメッセージを名前付きパイプでリッスンし始めます。
現在、スレーブが完全に起動して名前付きパイプでリッスンを開始する前に、マスタープロセスが名前付きパイプを介してスレーブを呼び出す状況があります。
ProcessStartInfo processStartInfo = new ProcessStartInfo("slave");
processStartInfo.Arguments = Address
Process process = new Process();
process.StartInfo = processStartInfo;
process.Start();
base.Endpoint.Binding = new NetNamedPipeBinding(NetNamedPipeSecurityMode.None);
base.Endpoint.Address = Address;
base.Channel.RemoteMethod();
これを行うと、チャネルが入り、チャネルCommunicationState.Faulted
での後続の呼び出しも失敗します。
スレーブ プロセスがリッスンを開始したことをマスターから確認するにはどうすればよいですか? CommunicationState.Faulted
または、 から回復してリモート コールを再試行するにはどうすればよいですか?