Web Service在VB.NET和SoapUI中返回不同的值

时间:2015-02-13 22:32:56

标签: vb.net web-services parsing soap fiddler

我公司的IT部门通过在返回响应中添加新的布尔字段来更新Web服务。在我的VB2010项目中,我将WSDL添加为Web服务。然后我基于非常基本的输入运行查询并返回三个记录。返回的新字段始终为False。当我在SoapUI中运行相同的查询时,我看到该字段为True。事实上,我正在进行的查询有一个过滤器,可以让我回到这个字段为True的所有记录,所以相当积极的过滤器正在工作。

在VB.NET中,我会在响应返回后立即将记录写入调试文件。除新的字段外,所有其他字段都匹配。作为Web服务的新手,我不确定我可以开始进行故障排除的内容。

我所做的唯一故障排除是打开Fiddler拦截响应,并在Fiddler应用程序中查看新字段为True的XML。所以我的猜测是Visual Studio中的服务没有正确解析它。

以下是SoapUI中的响应,其中ExcludeUpdate是新字段。

     <ns3:Machines>
        <ns3:procIdentifier>415782</ns3:procIdentifier>
        <ns3:OST>false</ns3:OST>
        <ns3:OLoaded>true</ns3:OLoaded>
        <ns3:ExcludeUpdate>true</ns3:ExcludeUpdate>
     </ns3:Machines>

1 个答案:

答案 0 :(得分:0)

好吧我明白了。不知何故,服务定义中的字段以小写字母开头,如

    '''<remarks/>
    Public Property excludeUpdate() As Boolean
    End Property

但是实际写的XML是大写的,如

 <ns3:Machines>
    <ns3:procIdentifier>415782</ns3:procIdentifier>
    <ns3:OST>false</ns3:OST>
    <ns3:OLoaded>true</ns3:OLoaded>
    <ns3:ExcludeUpdate>true</ns3:ExcludeUpdate>
 </ns3:Machines>

将XML输出更改为以小写字母开头并在Visual Studio项目中更新Web服务后,一切都开始正常工作。