HTTP标头或SOAP标头中的WCF Soap操作?

Way*_*neC 14 c# wcf soap

我对如何在WCF(以及其他Web服务框架)中实现SOAPAction感到困惑.

在测试客户端中,我有一个Client Message Inspector,它配置为同时获取SOAP消息和随请求一起发送的任何HTTP头.至少在客户端消息检查器中,该操作显示为SOAP标头中的元素:

<s:Header>
    <Action ... >http://myurl.com/2009/11/MyService/MyMethod</Action>
Run Code Online (Sandbox Code Playgroud)

但是,如果我在Fiddler中查看请求,则该Action元素丢失,而现在HTTP标头中还有一个附加条目:

SOAPAction: "http://myurl.com/2009/11/MyService/MyMethod"
Run Code Online (Sandbox Code Playgroud)

谁能解释一下到底发生了什么?

谢谢!

gbj*_*anb 15

这是WCF不遵守标准的问题.

SOAP 1.1使用SOAPAction标头来决定调用哪种方法,但由于方法名称嵌入在消息的其他位置,因此这有点混乱.SOAP 1.2解决了这个问题,并将操作添加到content-type标头,并弃用了SOAPAction标头(尽管现在它仍然是那些仍想发送它的客户端的可选项).

有关详细信息,请参阅o'reilly博客页面.


Joh*_*ers 5

您很可能会看到 SOAP 1.1 和 SOAP 1.2 之间的差异。