gpt4 book ai didi

c# - 自定义 xmlns :a= tag in a soapresponse from WCF

转载 作者:行者123 更新时间:2023-12-04 16:58:18 25 4
gpt4 key购买 nike

我正在创建一个服务来响应调用。
但是客户端(不是我写的)无法读取响应。
我们发现这似乎是由于在

xmlns:a="http://schemas.datacontract.org/2004/07/MyProject.Classes"

无论如何要覆盖这个命名空间?
我很确定是这样。

[ServiceBehavior] 标记具有“http://correctnamespace.com”命名空间

app.config 中的 BindingNameSpace 具有“http://correctnamespace.com”命名空间

[ServiceContract] 具有“http://correctnamespace.com”命名空间

我查看了 OperationsContract 以查看是否可以找到它,但没有运气。

命名空间需要是“http://correctnamespace.com”

下面是 SOAP 响应上部的完整示例
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<getAddressResponse xmlns="http://correctnamespace.com">
<getAddressReturn xmlns:a="http://schemas.datacontract.org/2004/07/MyProject.Classes" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:PropertyChanged i:nil="true" xmlns:b="http://schemas.datacontract.org/2004/07/System.ComponentModel"/>
<a:addressField>Happystreet 21</a:addressField>

我希望有人能帮我尽快解决这个问题。

添加信息

该服务是为适合他的客户而创建的。

客户端是预先设计的,服务是基于客户端创建者提供的 WSDL 文件创建的。

另请注意,不能修改客户端。 :(

最佳答案

我有几个建议。

首先,假设服务器端代码沙 stub 都正确且运行正常,请客户端重新生成客户端 stub 。他们使用的 stub 可能是旧的或已被修改。

其次,如果服务器端也不能正常工作,我建议从头开始重新创建您的 WSDL。正确的 SOAP 编码是代码创建的 WSDL。因此,如果您的 WSDL 是由工具生成的,它将具有特定的命名约定,虽然您可以手动更改诸如 xmlns 之类的内容,但如果您错过了一个(这听起来像是发生的事情),它将弄乱您的代码。因此,返回并从头开始制作 WSDL 并从 WSDL 生成代码类,这样您就可以按照您希望的方式命名所有内容。

关于c# - 自定义 xmlns :a= tag in a soapresponse from WCF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8229078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com