.net 正在使用SOAP Web服务,反序列化值类型时出错

.net 正在使用SOAP Web服务,反序列化值类型时出错,.net,web-services,soap,xml-serialization,wsdl,.net,Web Services,Soap,Xml Serialization,Wsdl,有人知道如何对web服务响应进行故障排除吗? 从web服务调用返回soap消息时,只要字符串“”是值类型(如每个示例的datetime),就会出现以下错误“字符串“”不是有效的AllXsd值” 我的代理类是使用wsdl.exe从wsdl生成的,wsdl似乎是有效的。 我在代理类中没有发现任何错误(生成了指定的值,datetime可以为null) 我试过netmon在电线上看到soap信封,但一切似乎都正常 你能想出其他方法来解决这个问题吗?或者可能是关于这里发生了什么的线索?您在web服务上有任

有人知道如何对web服务响应进行故障排除吗? 从web服务调用返回soap消息时,只要字符串“”是值类型(如每个示例的datetime),就会出现以下错误“字符串“”不是有效的AllXsd值”

我的代理类是使用wsdl.exe从wsdl生成的,wsdl似乎是有效的。 我在代理类中没有发现任何错误(生成了指定的值,datetime可以为null)

我试过netmon在电线上看到soap信封,但一切似乎都正常


你能想出其他方法来解决这个问题吗?或者可能是关于这里发生了什么的线索?

您在web服务上有任何可用的文档吗?如果报告使用datetime时出现此问题,请验证日期的格式是否正确
date.ToString(“yyyy-MM-dd”)或您的服务期望的任何内容。

尝试使用该工具点击您的web服务,查看它是否与您的客户机存在相同的问题。你可以收集一些线索。web服务是您的代码吗?如果是,您使用的是asmx还是WCF?您使用的是DataContract序列化程序还是XmlSerializer?您是否尝试过重新生成客户端代理

好的,我发现了问题所在

在SOAP中,有两种方法可以使元素为null:

或者缺少整个元素 或者使用参数xsi:nil=“true”且没有值

他们通过使用第一个选项修改消息来修复它。 从那时起,我可以毫无问题地反序列化


谢谢你的回答

我的SOAP请求返回BadRequest,因为这是
xsi:nil=“true”
问题。
将此项添加到SOAP信封顶部的做法是:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
例如:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.blahblahblah.com/myobjectdefinition" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">


我不知道SoapUI为什么没有生成这一位,但无论如何它为我修复了它。

请发布完整的异常。捕获异常并发布ex.ToString()的结果。