gpt4 book ai didi

xml - 在发送 SOAP 消息 "manually"时,我收到 WCF 的 AddressingNone 错误

转载 作者:行者123 更新时间:2023-12-03 09:16:23 28 4
gpt4 key购买 nike

我正在尝试通过 SOAP 消息(我已提取)发送到我的 WCF 服务,而不使用 WCF 客户端基础结构。在不使用我的生产消息(和代码)的情况下,我已经能够设置同一问题的虚拟版本(感谢 WF_WCF_Samples)。

所以契约(Contract)看起来像这样:

[ServiceContract(Namespace="http://Microsoft.Samples.UsingUsing")]
public interface ICalculator
{
[OperationContract]
double Add(double n1, double n2);
[OperationContract]
double Subtract(double n1, double n2);
[OperationContract]
double Multiply(double n1, double n2);
[OperationContract]
double Divide(double n1, double n2);
}

查看实际 WCF 客户端发送的 SOAP 消息,我在 WCF 跟踪中得到以下信息:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<To s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://localhost:56852/service.svc</To>
<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://Microsoft.Samples.UsingUsing/ICalculator/Divide</Action>
</s:Header>
<s:Body>
<Divide xmlns="http://Microsoft.Samples.UsingUsing">
<n1>0</n1>
<n2>0</n2>
</Divide>
</s:Body>
</s:Envelope>

这是工作电话中的内容。但是,如果我尝试这样做,我会收到记录在 WCF 跟踪中的以下异常:

Addressing Version 'AddressingNone (http://schemas.microsoft.com/ws/2005/05/addressing/none)' does not support adding WS-Addressing headers.

我尝试过使用 SoapUI 甚至 Httpie 来发送 XML 文件:

Httpie sending Soap message - failure

因此我收到 HTTP 错误 400 - 错误请求。

我当前正在使用 basicHttp(s)Binding WCF 绑定(bind)。

我尝试过修改绑定(bind),但没有任何效果。有什么想法吗?

最佳答案

当我查看 WCF 跟踪(在服务端,而不是客户端)时,我惊讶地发现 WCF 实际上在 SOAP 消息中添加了以下 header :

<To s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://localhost:56852/service.svc</To>
<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://Microsoft.Samples.UsingUsing/ICalculator/Divide</Action>

当我把它拿出来时,我的请求顺利通过。

Httpie sending Soap message - success

在设置 Wireshark 之类的东西时,我设法看到实际的消息不包含此 header 。 WCF 在跟踪过程中将其添加到 SOAP header 中。但发送该信息是无效的。 HTTP Soap Action header 就足够了。

关于xml - 在发送 SOAP 消息 "manually"时,我收到 WCF 的 AddressingNone 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37281149/

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