【问题标题】:WCF Request FormattingWCF 请求格式
【发布时间】:2015-04-08 17:46:07
【问题描述】:

我正在将旧版 Web 服务转换为 WCF 服务。前端应用程序当前正在使用此服务。但到目前为止,前端不会使用新的 WCF 服务,因此我们计划将请求重新路由到我们的新服务。这里要注意的是,新的 WCF 服务应该能够处理旧的输入请求,并且应该能够以完全相同的格式发回响应。

当我生成一个 wsdl 并将其添加到soapUI 项目中时。 Body 被包裹在一个带有方法名称的标签中(“UserVerification”是操作合约名称),有没有办法在不使用消息合约的情况下处理这个问题(我使用传统类型作为输入参数,所以无法更改它们)

现在是这样的:

<soapenv:Body>
  <wes:UserVerification>
     <!--Optional:-->
     <wes:userVerificationRequest wes:Direction="Request" >

     </wes:userVerificationRequest>
  </wes:UserVerificatio>
</soapenv:Body>

我希望它是这样的

<soapenv:Body>
    <wes:UserVerificationRequest wes:Direction="Request" >

    </wes:UserVerificationRequest>
</soapenv:Body>

【问题讨论】:

    标签: c# .net wcf wsdl messagecontract


    【解决方案1】:

    WCF 默认使用“Wrapped”消息样式。如果您希望能够控制消息的序列化方式,您可以通过使用 MessageContractAttribute 进行装饰来定义显式消息。使用显式消息协定,您可以将 IsWrapped 属性设置为 false。

    在您的情况下,我认为 EchoRequest 和 EchoResponse 根本不应该是 DataContracts,而是 MessageContracts。在我看来,它们很像 MessageContracts。

    Using Message Contracts

    【讨论】:

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