【问题标题】:Is WCF the correct approach for this generic SOAP message?WCF 是这个通用 SOAP 消息的正确方法吗?
【发布时间】:2013-07-10 08:06:58
【问题描述】:

第三方希望向我们发送 SOAP 消息。

我们的响应中<s:Body></s:Body> 元素之间的所有内容都必须在我们的控制之下。

经过几个小时的研究,WCF 消息似乎会将响应包装在一个带有 WCF 方法名称的 xml 元素中。

有没有办法使用 WCF 解决这个问题?还是有更好的、完全不同的方法?

【问题讨论】:

  • 看看 System.ServiceModel.Channels.BodyWriter 是否对您有帮助。 BodyWriter 是一种抽象类型,它公开了一个名为 OnWriteBodyContents 的受保护抽象方法。
  • 你能举一些你想要的例子吗?根据您提供的当前详细信息,我建议您探索 MessageContracts 以完全控制消息。
  • @MilanRaval 所以不是<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header /> <s:Body> <TestMessageResponse xmlns="http://tempuri.org/"> <TestMessageResult>hello</TestMessageResult> </TestMessageResponse> </s:Body> </s:Envelope>而是我想要<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header /> <s:Body> hello </s:Body> </s:Envelope>
  • 这是您系统的绝对核心部分,还是只是补充,没有那么相关的功能?如果它不需要 WCF 的灵活性和强大功能,我会选择自定义连接,您可以在模板文件中完全自行定义消息。如果您对这种方法感兴趣,请告诉我。

标签: c# asp.net xml wcf


【解决方案1】:

尝试将其定义为裸服务:

[SoapDocumentService(Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Bare)]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-24
    • 2011-07-10
    • 2015-05-06
    • 2013-02-13
    • 2013-10-28
    • 1970-01-01
    • 2021-08-07
    • 2013-09-25
    相关资源
    最近更新 更多