从来没见过这个.
WebService.Implementation imp = new WebService.Implementation(); WebService.ImplementationRequest req = new WebService.ImplementationRequest(); return imp.GetValue(req);
imp返回的对象不为null.它按预期返回ImplementationResponse.但该对象中的所有字段都为空.这不是预期的.目前,WebService只返回一些常量虚拟数据.我们已经在另一台开发人员的机器上测试了这个,运行得很好.
我想我还应该注意,如果我将null传递给GetValue方法,WebService应该抛出异常.它没有.不适合我.
任何想法,我的环境可能会导致WebService返回一个对象,但是使该对象中的每个值都为空?不知何故,当它应该抛出异常时,"神奇地"回归这个神秘物体?
当生成的代码与Web服务返回的xml之间存在差异时,通常会发生这种情况,因此无法对其进行反序列化.
再次获取wsdl,重新生成所有代理类,然后重试.确保发送正确的虚拟数据.
更新:
过去常常发生这种情况,因为Web服务不是由我的团队管理的,我们也不会注意到对服务所做的更改.我们最终拦截了Web服务管道中的soap消息以进行调试.这是一个很好的资源,让你在路上.
您不需要更改管道中的任何内容,只需抓取soap消息并保存它们,以便稍后进行调试.大多数时候,事实证明这是合同的变化.其他时候我们没有合同,所以没有抓住信封就无法知道变化.
无论如何,即使这不是你的问题,我认为这是一件好事.