【问题标题】:Web Service returns different values in VB.NET vs SoapUIWeb 服务在 VB.NET 和 SoapUI 中返回不同的值
【发布时间】:2015-02-13 22:32:56
【问题描述】:

我公司的 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>

【问题讨论】:

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


    【解决方案1】:

    嗯,我想通了。不知何故,服务定义中的字段以小写开头,如

        '''<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 服务后,一切都开始正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      相关资源
      最近更新 更多