Wo steck ich in WCF in benachrichtigt werden, wenn eine Nachricht eintrifft?
-
03-07-2019 - |
Frage
Ich schreibe eine Probe Konsole Service-Host und ich möchte in WCF-Stack stopfen Lage sein, eine Nachricht zu drucken zu trösten, wenn neue Nachricht eintrifft, auch wenn es nicht durch den Dienst im Moment verarbeitet bekommen (weil Service arbeitet an früheren Anrufe). Dies basiert auf meiner Annahme, dass Nachrichten von den WCF Warteschlange erhalten kommen, ist das richtig?
Außerdem verwende ich netTcpBinding wenn dies wichtig ist.
Lösung
Sie können einen benutzerdefinierten Channel schreiben und in den Kanalstapel einfügen um jeden Punkt, den Sie wollen. Queuing geschieht in ChannelListeners, die zwischen jedem Kanal sitzen:
ChannelListener_1 -> Kanal_1 -> ChannelListener_2 -> Channel_2. -> etc
Also, wenn Sie sind Ihren eigenen Kanal Hörer / Kanal einfügen Sie in jeden Teil des Prozesses müssen Sie Haken könnten. Beachten Sie jedoch, dass der Inhalt der Nachricht nicht lesbar sein könnte, bis es weiter unten in dem Stapel wird und wird entschlüsselt.
Andere Tipps
Sie haben wahrscheinlich einen benutzerdefinierten Channel für das schreiben. Schauen Sie sich WCF Channels Mini Buch