Ich erstelle einen Windows-Dienst, der eine Reihe von Slave-Prozessen startet. In jedem dieser Slave-Prozesse höre ich auf eine Named Pipe für eine Nachricht vom Master-Prozess.Wie kann ich prüfen, ob ein WCF-Host verfügbar ist, bevor ich einen Kanal von einem Client aus verwende?
Ich habe derzeit die Situation, in der der Master-Prozess einen Slave über eine Named Pipe anruft, bevor der Slave vollständig gestartet ist und beginnt auf die Named Pipe zu hören.
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();
Wenn ich dies tun wird der Kanal in CommunicationState.Faulted
und alle nachfolgenden Anrufe auf dem Kanal nicht als gut.
Was kann ich tun, um vom Master zu bestätigen, dass der Slave-Prozess zu hören beginnt? Oder wie kann ich von der CommunicationState.Faulted
wiederherstellen, um mein Remoteanruf erneut zu versuchen?
Wie würden Sie die Instanz neu aufbauen? Erstellen Sie eine neue Instanz des Objekts? –
ja. – AlexDrenea
Es brauchte einige Umstellungen von Verantwortlichkeiten zwischen Objekten, aber ich habe es jetzt eingerichtet. Danke –