.net 如何获取消息约定以在正文而不是标头中发送soap操作

.net 如何获取消息约定以在正文而不是标头中发送soap操作,.net,wcf,web-services,soap,.net,Wcf,Web Services,Soap,当我在svcutil命令中使用“/messageContract”时,我的soap消息在soap信封的头部而不是正文中发送动作或操作。远程端点是供应商基于Java的服务,我无法控制它 我需要在正文中发送操作,但仍然使用“/messageContract” 有人知道如何做到这一点吗? 带有“/messageContract”的SOAP信封 您真的确定您的目标(基于Java的)web服务需要SOAP主体中的基于Microsoft的命名空间元素而不是SOAP头吗?我觉得那是假的 <Action

当我在svcutil命令中使用“/messageContract”时,我的soap消息在soap信封的头部而不是正文中发送动作或操作。远程端点是供应商基于Java的服务,我无法控制它

我需要在正文中发送操作,但仍然使用“/messageContract”

有人知道如何做到这一点吗?

带有“/messageContract”的SOAP信封


您真的确定您的目标(基于Java的)web服务需要SOAP主体中的基于Microsoft的命名空间元素而不是SOAP头吗?我觉得那是假的

<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">GetCapabilities</Action>
,不作为SOAP主体的一部分:

POST /StockQuote HTTP/1.1
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
SOAPAction: "http://electrocommerce.org/abc#MyMessage"

<SOAP-ENV:Envelope...
POST/StockQuote HTTP/1.1
内容类型:text/xml;charset=“utf-8”
内容长度:nnnn
SOAPAction:“http://electrocommerce.org/abc#MyMessage"

谢谢你的帖子。目标web服务不需要基于Microsoft的命名空间元素。但是,它确实要求操作在SOAP请求的主体中,而不是在头中。这就是为什么我需要firs看起来更像第二个soap请求。第二个soap请求(不带“/messageContract”的soap信封)是工作soap请求的原始示例。我使用SOAPUI独立于.NET对其进行了测试。对,因此您根本不需要主体中的
操作
元素,只需要主体中的实际操作元素。那么问题出在哪里呢?我仍然希望使用“/messageContract”,因为出于某种(奇怪的)原因,我认为它可能会使我的代码正常工作。我想真正的问题还是我应该关闭这个帖子吗?现在你指出了这一点,这是相当令人震惊的。我真正的问题是上面的链接。告诉你吧,我将保留此链接,但请帮助我找出对象未填充的原因(),我将给出两个答案:)
svcutil /target:code http://localhost/sarpilot/xml/mywisdl.wsdl /messageContract /out:WebService.cs /config:WebService.config
<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">GetCapabilities</Action>
POST /StockQuote HTTP/1.1
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
SOAPAction: "http://electrocommerce.org/abc#MyMessage"

<SOAP-ENV:Envelope...