我正在将旧版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>
答案 0 :(得分:0)
默认情况下,WCF使用“Wrapped”消息样式。如果您希望能够控制消息的序列化方式,则可以通过使用MessageContractAttribute进行装饰来定义显式消息。使用显式消息协定,您可以将IsWrapped属性设置为false。
在你的情况下,我认为EchoRequest和EchoResponse根本不应该是DataContracts,而是MessageContracts。它们看起来很像MessageContracts给我。