我正在使用SOAPUI来调用带有十进制值的WCF端点。在某处,该值将转换为零。
我可以使用.NET应用程序中的相同参数调用相同的服务,并且值不会被更改。我可以反序列化并检查从我的.NET应用程序和SoapUI传递的值,并且对象的反序列化版本都是相同的。
我已经能够在离开SoapUI之后在Fiddler中捕获该请求,并且十进制值仍然很明显,所以我知道它正在某处转换到下游。
这篇文章表明,在生成代理时会发生这种情况: int properties are 0 when consuming WCF in .Net 2 - 但证据并未指出这是服务中的问题,而不是客户。
道歉由于公司隐私限制,我无法共享WSDL或XML。
答案 0 :(得分:1)
我的决议是改变请求参数的顺序。
我能够通过enabling WCF tracing确定这一点,包括message payloads,然后将我的.NET应用程序的有效负载与SoapUI的有效负载进行比较。
有效负载大不相同,但忽略了名称空间,关联ID,键和日期,我能够确定我的有问题的参数处于不同的位置。在SoapUI XML请求中更改顺序解决了这个问题。