Wie ändern Sie programmgesteuert die WCF-Nachrichtencodierung für NetTcp?

8

Ich habe eine benutzerdefinierte Intranetanwendung, die keine Interoperabilitätsanforderungen hat. Wir konstruieren programmatisch einen NetTcp-Kanal im Duplex-Modus zum Weiterleiten von Nachrichten. Wir wollten die Nachrichtencodierung ändern, konnten aber nicht herausfinden, wie dies geschehen kann.

Der Ansatz, den wir (erfolglos) gemacht haben, bestand darin, das NetTcpBinding wie folgt in eine neue Klasse namens LeanTcpBinding zu erweitern:

%Vor%

Offensichtlich versuchen wir das standardmäßige BinaryMessageEncodingBindingElement durch unser eigenes zu ersetzen. Nur um die Verwendung zu starten, ist das LeanBinaryMessageEncodingBindingElement eine Erweiterung des BinaryMessageEncodingBindingElement wie folgt:

%Vor%

Wenn ich versuche, die Bindung zu verwenden, tut es genau das, was ich denke, es sollte tun ... es ersetzt das BinaryMessageEncodingBindingElement. Ich bekomme jedoch nie Aufrufe an die LeanBinaryMessageEncodingBindingElement.CreateMessageEncoderFactory (), obwohl Nachrichten über den Kanal ausgetauscht werden.

Hat jemand Vorschläge, wie man das richtig macht?

    
Ajaxx 05.01.2010, 13:51
quelle

2 Antworten

7

Kenny Wolf hat klargestellt, was fehlte und es ist im Blog-Eintrag dokumentiert.

Ссылка

Für die Ungeduldigen besteht das Problem darin, dass das MessageEncoderBindingElement standardmäßig nicht zu den Bindeparametern des Kontexts hinzugefügt wird. Wenn der Transport dann später das MessageEncoderBindingElement findet, kann es dasjenige nicht finden, das ich (oder Sie) erstellt habe, und hat den stillen Fehler, den ich in meinem ursprünglichen Post bemerkt habe.

Leider müssen Sie alle Methoden von CanBuildXXX und BuildXXX wie folgt überschreiben, um sicherzustellen, dass Sie den Bindungsparametern des Kontexts das Bindungselement hinzufügen.

%Vor%     
Ajaxx 06.01.2010, 05:05
quelle
2

Haben Sie versucht, eine CustomBinding stattdessen aus der NetTcpBinding-Konfiguration, die Sie haben, zu erstellen? Etwas wie das:

%Vor%     
tomasr 05.01.2010 16:05
quelle

Tags und Links