如何编写使用WS-Addressing的异步WCF服务和客户端?

时间:2012-06-12 12:23:45

标签: wcf .net-4.0 ws-addressing

Wikipedia page for WS-Addressing州:

  

WS-Addressing通过指定包含端点引用的公共SOAP标头(wsa:ReplyTo)来支持异步交互的使用

我有一个简单的WCF服务,我通过SOAP公开。我可以看到WSDL,并且根节点中有XML命名空间提到了寻址:

<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"   
      ... 
 >

我可以创建一个使用WS-Addressing的异步WCF(或其他.NET,但不是来自 scratch )客户端吗?

我已经为控制台应用添加了服务引用,代理类看起来正确,但我怎么知道我正在利用WS-Addressing?我知道我可以看到HTTP请求看到它进行异步调用,但这有点反复试验。

我知道存在“生成异步操作”复选框,我假设这利用了.NET中常见的开始/结束模式而不是WS-Addressing?

1 个答案:

答案 0 :(得分:1)

异步操作和WS-Addressing的使用是正交的。寻址的使用是根据端点中使用的绑定确定的,并定义了客户端和服务器之间交换的消息的格式。

操作是同步或异步的事实对线路上的消息没有影响 - 您可以将同一消息定义为同步和异步,它们应该也可以正常工作。