如果我使用 wcf,如何将 <s:Envelope 更改为 <SOAP-ENV:Envelope?

Posted

技术标签:

【中文标题】如果我使用 wcf,如何将 <s:Envelope 更改为 <SOAP-ENV:Envelope?【英文标题】:How can I change <s:Envelope to <SOAP-ENV:Envelope if I use wcf? 【发布时间】:2011-04-02 14:28:41 【问题描述】:

我的 wcf 和我的服务的 soap xml 响应有问题。如何将&lt;s:Envelope 更改为&lt;SOAP-ENV:Envelope?我想这一定是可以通过属性控制的?

我使用 .NET 4.0、c#、basicHttpBinding 和 messagecontracts

【问题讨论】:

【参考方案1】:

为什么需要这个?根据 XML 定义,它具有完全相同的含义,我担心除非您创建自己的消息编码器,否则这是不可能的。

编辑:这是一个blog post,描述了如何在自定义编码中替换前缀。

【讨论】:

嗨,我知道这应该不是问题,但在我的情况下,另一方将收到期望这种格式的响应。也许我认为在这种情况下复杂?!? br 当对方解析需要固定格式的消息时,有时会发生这种情况。 您需要自定义消息编码。我已添加有关此主题的文章的链接。 我担心这是解决我的问题的唯一方法,我在搜索过程中有时会看到那个博客,但我希望我能找到另一种方法......非常感谢您提供的信息! 【参考方案2】:

这只是命名空间,不应影响 XML 的行为和功能。

你遇到了什么问题?

【讨论】:

【参考方案3】:

据我了解,&lt;soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/&lt;s:Envelope xmlns:s=http://schemas.xmlsoap.org/soap/envelope/ 相同。因为 xmlns:soap 和 xmlns:s 有自我解释。

【讨论】:

以上是关于如果我使用 wcf,如何将 <s:Envelope 更改为 <SOAP-ENV:Envelope?的主要内容,如果未能解决你的问题,请参考以下文章

如何将xml参数发送到WCF?

WCF:如何禁用WCF测试客户端

如何使用 clientCredentialType="Basic" 将 Java 客户端连接到 WCF 服务

如何将 WCF 配置为接受 SSL 和非 SSL

WCF:将 Nonce 添加到 UsernameToken

如何使用 WCF 接收从 Android 发送的图像?