0

第一次尝试使用网络服务。我正在使用 VS2005 并尝试调用 Web 服务功能。我将我的 webreference 添加到 WSDL,得到了我的自动生成代码。

我可以在没有错误/异常的情况下调用它,但我从服务功能中没有得到任何回报。当我运行我的代码并看到网络服务实际上发回了它应该发送的数据时,我对网络流量进行了数据包嗅探,我只是从未在下面的代码中收到它

    Dim proxy As New MyServer.MyService
    Dim response As New Object()
    response = proxy.getAllThings(Nothing)

在 WSDL 中它说它需要 Object 作为参数并返回 Object。还尝试过:
Dim response As New Object 和
Dim response As String=""

响应始终为 Nothing/Null

嗅探到的数据显示了一个纯文本 SOAP 信封,这是我期望的“响应”包含的内容。

从 web 服务发送到我的计算机 IP 地址的嗅探数据:

    Server: Apache-Coyote/1.1
    Content-Type: text/xml;charset=utf-8
    Transfer-Encoding: chunked
    Date: Mon, 23 Apr 2012 08:26:01 GMT
    321
    <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><cmp:things xmlns:cmp="http://cmp.com"><cmp:thing><cmp:id>10</cmp:id><cmp:name>ASM</cmp:name></cmp:thing><cmp:thing><cmp:id>1</cmp:id><cmp:name>CHP</cmp:name></cmp:thing><cmp:thing><cmp:id>11</cmp:id><cmp:name>UDB</cmp:name></cmp:thing><cmp:thing><cmp:id>8</cmp:id><cmp:name>GKH</cmp:name></cmp:thing><cmp:thing><cmp:id>5</cmp:id><cmp:name>GGW</cmp:name></cmp:thing><cmp:thing><cmp:id>6</cmp:id><cmp:name>LRZ</cmp:name></cmp:thing><cmp:thing><cmp:id>7</cmp:id><cmp:name>MRN</cmp:name></cmp:thing><cmp:thing><cmp:id>2</cmp:id><cmp:name>KBV</cmp:name></cmp:thing><cmp:thing><cmp:id>3</cmp:id><cmp:name>CXE</cmp:name></cmp:thing></cmp:things></soapenv:Body></soapenv:Envelope>
    0

这些嗅探到的数据从未出现在“响应”中

我以http://msdn.microsoft.com/en-us/library/aa275675%28v=sql.80%29.aspx为例。

任何帮助将不胜感激。

编辑: “响应”应该包含来自网络服务调用结果的数据,不是吗?

4

1 回答 1

1

在另一台计算机上安装 VS2010 express 并连接到服务,我收到一条错误消息。基本上,来自服务的响应与 WSDL 不匹配。不知道为什么 VS2005 没有给我任何错误。

它是由 java 客户端使用的生产服务,显然它不关心不匹配。

于 2012-04-25T10:35:12.453 回答