Meine Lösung enthält zwei Projekte: WCF-Dienste und WCF-Client. Die Reihenfolge des Starts:Warum werden meine * Timeout-Einstellungen ignoriert?
Als ich meinen Dienst manuell starten und später meinen Kunden es funktioniert gut. Aber wenn ich das gleiche durch IDE im Debug-Modus dann Zeit der Zeit bekomme ich die Ausnahme:
Eine nicht behandelte Ausnahme des Typs
System.ServiceModel.EndpointNotFoundException
in aufgetretenmscorlib.dll
Zusätzliche Informationen: Zuhören auf
net.pipe://localhost/
war nicht ausgeführt von jedem Endpunkt, der die Nachricht annehmen könnte. Unter anderen Ursachen kann es durch die falsche Adresse oder Aktion von SOAP verursacht werden. Für weitere Details finden Sie in der Beschreibung von InnerException (, wenn verfügbar ist).
Aber mein Klienten Config
-datei enthält Einstellungen Timeout:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
</startup>
<system.serviceModel>
<bindings>
<netNamedPipeBinding>
<binding
closeTimeout="00:30:30"
openTimeout="00:30:30"
receiveTimeout="00:30:30"
sendTimeout="00:30:30"/>
</netNamedPipeBinding>
</bindings>
<client>
<endpoint name="pipe1"
address="net.pipe://localhost"
binding="netNamedPipeBinding"
contract="ServiceReference1.IContent"/>
<endpoint name="pipe2"
address="net.pipe://localhost"
binding="netNamedPipeBinding"
contract="ServiceReference1.IMessages"/>
</client>
</system.serviceModel>
</configuration>
Warum die Ausnahme Zeit Zeit in dem Debug-Modus auftreten?
UPD
Zusätzliche Variante des decission:
#if DEBUG
System.Threading.Thread.Sleep(1000);
#endif
Ich denke, der Client versucht, zu früh eine Verbindung herzustellen. Sie könnten den Verbindungscode mit einem Wiederholungsmechanismus umgeben (d. H. Warten Sie auf x Millisekunden und versuchen Sie es erneut, wiederholen Sie das y-Mal, lösen Sie die Ausnahme aus, wenn die Verbindung nach dem Versuch nicht erfolgreich ist). – venerik
Wahrscheinlich im Zusammenhang mit [dieser Frage] (http://stackoverflow.com/questions/340521/how-can-i-make-named-pipe-binding-reconnect-automatica-in-wcf). – khlr
, aber die Ausnahme tritt früher als 30 Sekunden auf. –