Ich benutze gerne WCF-Callbacks, wenn es mir möglich ist, weil es für mich besser ist, als dass der Client den Server abfragen muss und mehr Echtzeit als das Abfragen hat. Die Frage, die ich habe, ist, wenn ich ein WCF-Serviceereignis abonniere, gibt es irgendeine Art von Herzschlag, der die Verbindung zwischen dem Client und dem Server aufrecht erhält. Ich beginne zu denken, dass es nicht gibt, denn wenn der Server weggeht, ist das Abonnement verloren und der Client wirft keine Ausnahme (könnte die Ausnahme sein, wird von der WCF-Laufzeit verschlungen). Dasselbe gilt für den Server, wenn der Client den Server verlässt und der Server versucht, den Callback aufzurufen, und die Ausnahme throw ist. Irgendwelche Gedanken?
Danke
In diesem Link finden Sie eine kurze Beschreibung des Duplex-Vertrags (WCF-Callbacks) . Der Duplex-Vertrag besteht im Wesentlichen aus zwei Einweg-Kanälen und es gibt keine implizite Nachrichtenkorrelation. Sie haben Recht, es gibt keine "Heartbeat" -Nachrichten, nur der normale wsHTTP-Handshake-Verkehr tritt auf, wenn Sie einen Duplex-Anruf tätigen.
Ich habe den HTTP-Traffic-Sniffer Fiddler2 (ein nicht unterstütztes Microsoft-Tool) gestartet, um den Sitzungsverkehr zu überprüfen. Es wurde keine HTTP-"Heartbeat" -Kommunikation unter der Haube beobachtet, die während und nach den Serviceanrufen stattfand. Ich ließ den Kunden eine ganze Weile laufen. Gute Frage, ich habe etwas gegraben.
Tags und Links wcf