C#-SOAP Body的命名空间过多

时间:2018-09-18 15:32:56

标签: c# soap wsdl asp.net-core-2.0

我有一个c#.NET Core 2.1应用程序,它使用WSDL生成我可以实例化和调用的服务。它将自动生成XML并将其发送。

var client = new Client();
var request = new Request();
var response = new client.Method(request);

我在这里没有手动生成任何XML。客户端,请求和响应均在Reference.cs中定义

.NET生成XML时,我在Fiddler中对其进行了检查,它将向Body元素添加2个(未使用的)名称空间:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

问题是,由于这些额外的命名空间,在另一端监听的代码拒绝了我的呼叫。我想它正在通过XSD验证程序之类的东西。

如果我使用.NET生成的XML并将其通过SoapUI发布,则会遇到相同的错误。如果删除这两个名称空间,我将获得成功。

有什么方法可以影响.NET插入到Body元素中的名称空间?

谢谢。

编辑:WSDL不是我的,我无法控制它。

0 个答案:

没有答案