【问题标题】:How to add MessageID in the soap headers of WCF request and response?如何在 WCF 请求和响应的肥皂头中添加 MessageID?
【发布时间】:2013-06-23 15:29:20
【问题描述】:

企业移动设备管理协议在 HTTP POST 请求中显示以下soap xml。如何将我的 Web 服务定义为soap 标头,以在请求和响应中包含 Action、MessageID、ReplyTo 和 To。我曾尝试在 MessageCONtract 中定义 MessageHeader,但这会导致自定义命名空间前缀。我找不到更好的文档链接。如何在客户端和 Web 服务端设置这些标头?

 <?xml version="1.0"?>
    <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"> <s:Header> 
    <a:Action s:mustUnderstand="1"> http://schemas.microsoft.com/windows/management/2012/01/enrollment/IDiscoveryService/Discover 
    </a:Action> 
    <a:MessageID>
    urn:uuid: 748132ec-a575-4329-b01b-6171a9cf8478
    </a:MessageID>
    <a:ReplyTo> <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
    </a:ReplyTo> 
    <a:To s:mustUnderstand="1"> https://ENROLLTEST.CONTOSO.COM/EnrollmentServer/Discovery.svc </a:To> 
    </s:Header> 
    <s:Body> 
    <Discover
    xmlns="http://schemas.microsoft.com/windows/management/2012/01/enrollment/"> 
    <request xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
    <RequestVersion>1.0</RequestVersion> 
    </request> 
    </Discover> 
    </s:Body> 
    </s:Envelope>

【问题讨论】:

    标签: wcf soap header


    【解决方案1】:

    使用自定义绑定,使这些标头包含在请求中并被服务器接受:

      <binding name="NewBinding0">
        <textMessageEncoding messageVersion="Soap12WSAddressing10" />
        <httpTransport />
      </binding>
    

    通常没有理由在响应中包含这些标头,这不是 ws-addressing 强制要求的。如果需要,请使用消息检查器将它们推送到消息中。

    【讨论】:

    • Naveh,感谢您的回复。在使用消息版本“Soap12WSAddressing10”将绑定更改为自定义绑定后,我能够在 MSFT 提供的 WCF 测试客户端应用程序中测试并获得正确的 soap xml。但是我在从我的应用程序访问 IIS 中托管的 Web 服务时遇到问题。我收到错误 400,因为找不到服务器。
    • 这可能是一个不同的问题。我建议您打开一个新问题,以便得到正确的关注。尝试在浏览器中访问 WSDL 文件,看看至少它是否有效。如果没有,可能是 iis 问题,尝试上传一个虚拟的 asp.net pp 看看它是否有效。
    • 谢谢,我可以从 IIS 浏览 WSDL 文件。如果需要任何帮助,我会重新检查并提出问题。
    • 当然。如果您能将此答案标记为正确,将不胜感激。
    【解决方案2】:

    这是为了做到这一点,至少对于请求:

    OperationContext.Current.RequestContext.RequestMessage.Headers.MessageId

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多