Verwendet WCF immer SOAP, um Informationen über Ihre Bindung zu senden?

8

Ich verstehe, dass Sie aus einer Reihe von Bindungen wie TCP, HTTP, HTTPS usw. auswählen können.

Stimmt es, dass es immer SOAP verwendet, um Daten über diese Verbindung zu senden? Ich beobachte einen Leitfaden für WCF und es wird darüber gesprochen, wie Ausnahmen in SOAP serialisiert und an den Client gesendet werden. Ich hätte gedacht, dass nicht alle Bindungen SOAP verwenden würden, um Daten zu senden, deshalb bin ich etwas verwirrt darüber, wie es funktioniert.

Obwohl ich die Grundlagen von WCF verstehe, wie man Dienste einrichtet und einen Proxy auf dem Client verwendet, scheint es nicht genau erklärt zu haben, wie die Daten zum Senden verpackt sind.

Vielleicht ist die Antwort offensichtlich, dass es nur XML / SOAP verwendet, aber ich würde es gerne wissen!

    
NibblyPig 03.05.2010, 20:03
quelle

1 Antwort

21

Nein, nicht alle. Das WebHttpBinding wurde um REST-Protokolle herum entwickelt (HTTP GET, POX, JSON, etc.) .)

Technisch gesehen ist WCF nur ein generisches Nachrichtenprotokoll und kann jede Art von Kodierung verwenden. Die Standard und häufigsten Kodierungen sind basicHttpBinding und wsHttpBinding , die beide auf SOAP / XML basieren.

Dann haben Sie netTcpBinding , das eine binäre Nachrichtencodierung verwendet, netMsmqBinding , die das Microsoft Message Queue (MSMQ) -Protokoll verwendet, und so weiter. Es gibt wirklich kein fest codiertes Format für Nachrichten in WCF.

SOAP hat eine eigene Spezifikation für das Serialisieren von Exceptions (AKA-Fehlern), so dass das Verhalten bei Verwendung einer SOAP-basierten Bindung immer mehr oder weniger gleich ist; Wenn Sie andere Bindungen verwenden, kann das fehlerhafte Verhalten erheblich abweichen und in einigen Fällen Ausnahmen verschlingen, es sei denn, Sie überschreiben das Standardverhalten (dies geschieht in webHttpBinding ).

    
Aaronaught 03.05.2010, 20:08
quelle

Tags und Links