我试图通过 SOAP 消息(我已提取)发送到我的 WCF 服务,而不使用 WCF 客户端基础结构。在不使用我的生产消息(和代码)的情况下,我已经能够设置相同问题的虚拟版本(感谢 WF_WCF_Samples)。
所以合同看起来像这样:
[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 跟踪中记录以下异常:
寻址版本“AddressingNone ( http://schemas.microsoft.com/ws/2005/05/addressing/none )”不支持添加 WS-Addressing 标头。
我尝试过类似 SoapUI 甚至 Httpie 来发送 XML 文件:
所以我得到一个 HTTP 错误 400 - 错误请求。
我目前正在使用 basicHttp(s)Binding WCF 绑定。
我试过弄乱绑定,但没有任何效果。有什么想法吗?