Question

The Wikipedia page for WS-Addressing states:

WS-Addressing supports the use of asynchronous interactions by specifying a common SOAP header (wsa:ReplyTo) that contains the endpoint reference

I have a simple WCF service that I'm exposing via SOAP. I can see the WSDL and there are XML Namespaces in the root node that mentions addressing:

<wsdl:definitions ...
      xmlns:wsa10="http://www.w3.org/2005/08/addressing"  
      xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy"    
      xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"  
      xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"   
      ... 
 >

Can I create an asynchronous WCF (or other .NET, but not from scratch) client that makes use of WS-Addressing?

I've added a service reference to a console app and the proxy class looks correct, but how do I know I'm taking advantage of the WS-Addressing? I know I can watch the HTTP requests to see it making asynchronous calls but that's a bit trial and error.

I know there is the "Generate asynchronous operations" checkbox, I assume this utilizes the usual Begin/End pattern found in .NET and not WS-Addressing?

Was it helpful?

Solution

Asynchronous operations and the use of WS-Addressing are orthogonal. The use of addressing is determined based on the binding used in the endpoint, and and defines the format of the message exchanged between the client and the server.

The fact that the operation is synchronous or asynchronous doesn't have an impact on the message on the wire - you can have the same message defined as both synchronous and asynchronous and they should work just as well.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top