我有WCF服务正在调用另一个WCF服务从我们的某个系统获取一些信息,并且返回的值似乎包含一些nil值。但是,在查看返回的XML时,似乎返回的值包含同一DataMamber的两个条目,一个具有nil值,另一个具有我期望的实际值,例如,
我在返回的XML中看到类似于以下内容的内容,其中DataMembers具有nil值:
<b:AccountNumber i:nil="true" />
<b:Created>0001-01-01T00:00:00</b:Created>
<b:CreatedBy i:nil="true" />
<b:EmailAddress i:nil="true" />
<b:GivenNames i:nil="true" />
然后在同一个文档中进一步向下,我看到以下相同的数据成员具有我期望的值:
<b:Id>16996172</b:Id>
<b:Created>2007-07-16T16:32:48.789755</b:Created>
<b:CreatedBy>SYSTEM</b:CreatedBy>
<b:RowStatus>None</b:RowStatus>
<b:AccountNumber>1234567</b:AccountNumber>
<b:EmailAddress>email@test.com.au</b:EmailAddress>
<b:GivenNames>TEST NAME</b:GivenNames>
并非所有返回的DataMembers都像这样重复,似乎返回的值为nil,然后返回所有正确的值。
之前有没有人见过这样的东西,或者可能会猜到导致它的原因?
答案 0 :(得分:0)
似乎问题是由WSDL和数据合同与Web服务本身不匹配引起的。
针对正在运行的Web服务而不是提供的WSDL文件运行svcutil.exe解决了这个问题。