none
SOAP Action 是什么?如何理解?有什么作用? RRS feed

答案

  •    Action 在WS规范里,用来定义消息请求的地址。也就是消息发送到哪个操作或者服务方法。@jowo 在我的博客WCF分布式开发步步为赢(5)服务契约与操作重载 里提过这个问题。最近学习Biztalk的时候又重新复习了一下,整理出来。这里涉及到WCF如何处理消息请求和分发消息的问题。

    WCF OperationContract属性提供了对请求和返回消息地址的配置。
    1.Action属性,设置WS-Addressing格式的地址,这个地址是来指定请求消息的目的地.
    2.ReplyAction属性设置WS-Addressing格式的地址,这个地址是来指定返回消息的目的地.
    备注:这里其实和Web 服务类似。WS-Addressing协议是行业标准,来识别消息的来源和目的地,使用WS- Security对到目的地的来源进行身份验证。
    WCF 默认使用的Action的值是服务契约的namespace+ 服务契约+操作名字 (Action = "<a href="http://www.cnblogs.com/frank_xl/IWCFOverLoadingService/SayHelloOverLoading2"" ),不代表实际的服务地址。WCF框架会在收到请求后作地址映射,发消息发送到实际的操作上
    所以一个携带Action值的消息到来,WCF分发器dispatcher会根据Action的Value来确定发给那个操作方法。这个过程消息会被反序列化。
    设置Action=”*” 可以使用一个Operation处理所有的请求消息。ReplyAction=”*” 可以使用一个Operation处理所有的返回消息。

    更多的资料你可以参考:http://baike.baidu.com/view/1609926.html

    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年8月5日 10:00
    版主