One Way

Binding uses an underlying protocol with no implicit return path for messages.

oneway-inonly.png
diagram

WSDL 1.1

full fragment:

<operation name="Ping"> <input message="s0:PingMessageIn"/> </operation>

WSDL 2.0

full fragment:

<operation name="Ping" pattern="http://www.w3.org/@@@@/@@/wsdl/in-only"> <input messageLabel="In" element="s0:PingMessageIn"/> </operation>

SOAP

full fragment:

POST /wsaService/service.ashx HTTP/1.1 <soap:envelope> <soap:header> <wsa:Action>Ping</wsa:Action> </soap:header> </soap:envelope> HTTP/1.1 202 Accepted Content-Length: 0

oneway-robustinonly.png
diagram

oneway-inout.png
diagram

oneway-outonly.png
diagram

Two Way

Binding uses an underlying protocol with an implicit back-channel for returning messages.

twoway-inonly.png
diagram

twoway-robustinonly FaultTo=Anonymous
diagram

WSDL 1.1

n/a

WSDL 2.0

n/a
fragment:

<operation name="EchoFault" pattern="http://www.w3.org/@@@@/@@/wsdl/robust-in-only"> <input messageLabel="In" element="s0:EchoFault"/> </operation>

SOAP

full request full response
fragment:

POST /wsaService/service.ashx HTTP/1.1 <soap:envelope> <soap:header> <wsa:Action>http://tempuri.org/ServicePortType/EchoFault</wsa:Action> </soap:header> </soap:envelope> HTTP/1.1 500 <soap:envelope> <soap:header> <wsa:Action>http://schemas.xmlsoap.org/ws/2004/03/addressing/fault </wsa:Action> </soap:header> <soap:Body> <soap:Fault/> </soap:Body> </soap:envelope>

twoway-robustinonly FaultTo=!Anonymous
diagram

WSDL 1.1

n/a

WSDL 2.0

full n/a
fragment:

<operation name="EchoFault" pattern="http://www.w3.org/@@@@/@@/wsdl/robust-in-only"> <input messageLabel="In" element="s0:EchoFault"/> </operation>

SOAP

full request full response n/a
fragment:

POST /wsaService/service.ashx HTTP/1.1 <soap:envelope> <soap:header> <wsa:Action>http://tempuri.org/ServicePortType/EchoFault</wsa:Action> <wsa:FaultTo> <wsa:Address>http://microsoft.com/wsaService/service.ashx</wsa:Address> <wsa:ReferenceProperties> <rp:CustomerKey xmlns:rp="http://tempuri.org/ReferenceProperties/Headers">ABCDEF</rp:CustomerKey> </wsa:ReferenceProperties> </wsa:FaultTo> </soap:header> </soap:envelope> HTTP/1.1 202 OK POST /wsaService/service.ashx HTTP/1.1 <soap:envelope> <soap:header> <wsa:Action>http://schemas.xmlsoap.org/ws/2004/03/addressing/fault </wsa:Action> <rp:CustomerKey xmlns:rp="http://tempuri.org/ReferenceProperties/Headers">ABCDEF</rp:CustomerKey> </soap:header> <soap:Body> <soap:Fault/> </soap:Body> </soap:envelope> HTTP/1.1 202 OK

twoway-inout ReplyTo=Anonymous
diagram

WSDL 1.1

full fragment:

<operation name="EchoString"> <input message="s0:EchoStringMessageIn"/> <output message="s0:EchoStringMessageOut"/> </operation>

WSDL 2.0

full fragment:

<operation name="EchoString" pattern="http://www.w3.org/@@@@/@@/wsdl/in-out">> <input messageLabel="In" element="s0:EchoStringMessageIn"/> <output messageLabel="In" element="s0:EchoStringMessageOut"/> </operation>

SOAP

full request full response
fragment:

POST /wsaService/service.ashx HTTP/1.1 <soap:envelope> <soap:header> <wsa:Action>http://tempuri.org/ServicePortType/EchoString</wsa:Action> <wsa:ReplyTo> <wsa:Address>*http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous*</wsa:Address> </wsa:ReplyTo> </soap:header> </soap:envelope> HTTP/1.1 200 Accepted <soap:envelope> <soap:header> <wsa:Action>http://tempuri.org/ServicePortType/EchoStringResponse</wsa:Action> </soap:header> </soap:envelope>

twoway-inout ReplyTo=!Anonymous
diagram

WSDL 1.1

full
fragment:

<operation name="EchoString"> <input message="s0:EchoStringMessageIn"/> <output message="s0:EchoStringMessageOut"/> </operation>

WSDL 2.0

full fragment:

<operation name="EchoString" pattern="http://www.w3.org/@@@@/@@/wsdl/in-out">> <input messageLabel="In" element="s0:EchoStringMessageIn"/> <output messageLabel="In" element="s0:EchoStringMessageOut"/> </operation>

SOAP

full request full response fragment:

POST /wsaService/service.ashx HTTP/1.1 <soap:envelope> <soap:header> <wsa:Action>http://tempuri.org/ServicePortType/EchoString</wsa:Action> <wsa:ReplyTo> <wsa:Address>http://microsoft.com/wsaService/service.ashx</wsa:Address> </wsa:ReplyTo> </soap:header> </soap:envelope> HTTP/1.1 202 Accepted POST /wsaService/service.ashx HTTP 1.1 <soap:envelope> <soap:header> <wsa:Action>http://tempuri.org/ServicePortType/EchoStringResponse</wsa:Action> </soap:header> </soap:envelope> HTTP/1.1 202 Accepted