Messaging Protocols

Regardless of the transport protocol (TCP, named pipes, MSMQ, or HTTP), messages are represented by the runtime in the same way, as a Message type from the System.ServiceModel.Channels namespace. The Message type is essentially a runtime representation of a SOAP message. When serialized, the wire format of the message complies with SOAP 1.1 or 1.2 depending on the binding configuration for the endpoint.

The Message type also holds addressing headers, consistent with the WS-Addressing standard. These are serialized with the message if the binding supports addressing. When the service model processes messages, other standards may also come into play to add features such as security and reliability. The service model supplies channels for many of the emerging protocols, usually referred to as WS* (pronounced WS-Star). Through bindings (discussed in Chapter 3), you can enable features that use these protocols. In short, WCF relies on standards to serialize messages; here I’ll provide you with an overview in this chapter of the core standards that will be elaborated on throughout this book.

Tip

Keep in mind that you will rarely need to worry about the details of messaging protocols because WCF implements them in the plumbing of the service model.

SOAP

SOAP was introduced in 1999—a short specification that finally made it possible to standardize how messages are exchanged on the wire, using XML at its core to support interoperability. A SOAP message contains message headers ...

Get Learning WCF now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.