我正在创建一个启动多个从属进程的 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
从重试远程呼叫中恢复?