我正在连接到由第三方提供商托管的 Web 服务。我已经在我的项目中向 Web 服务添加了一个服务引用,VS 已经生成了所有需要的引用和类。
我正在连接这段代码(客户端名称和方法匿名):
using (var client = new Client())
{
try
{
client.Open();
var response = client.Method(...);
return response.Status;
}
catch (SoapException ex)
{
throw CreateServiceException(ex);
}
finally
{
client.Close();
}
}
到达 client.Open() 时,我收到一条异常消息:
命名空间“”中的顶部 XML 元素“_return”引用了不同的类型 System.Boolean 和 Service.Status。使用 XML 属性为元素或类型指定另一个 XML 名称或命名空间。
在reference.cs 中,我可以看到“_return”变量用
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="", Order=0)]
wsdl、生成的服务引用或我的代码是否有问题?
更新:将服务生成为老式 Web 服务可以解决问题。我目前已将 Sixto 的答案标记为已接受,但我仍然很好奇可能导致问题的原因以及服务生成器的任何参数是否可以解决原始问题。