C#SOAP Webservice方法返回null

时间:2020-07-10 10:28:28

标签: c# xml web-services soap

我正在C#项目上从SOAP Web服务调用一个方法,即使我可以在程序级别看到响应以预期的数据和格式(使用fiddler)到达,该方法仍返回null。可能是该函数无法正确解析响应吗?

以标准方式调用该函数(selectedPLCInfo最终为null)

onRetryAsync: (exception, delay, times, context) => {
  //TODO: logging
}

这是应用程序正在发送的请求:

LanDB.DeviceBasicInfo selectedPLCInfo = client.getDeviceBasicInfo(plcHostname);

这是响应:

POST xxx/soap/soap.fcgi?v=6 HTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Host: xxx
Content-Length: 1439
Expect: 100-continue
Accept-Encoding: gzip, deflate

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
    <Auth xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
        <token xmlns="http://schemas.datacontract.org/2004/07/TIA_Portal_VPG_Manager">token</token>
    </Auth>
</s:Header>
<s:Body s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <q1:getDeviceBasicInfo xmlns:q1="urn:NetworkService"><DeviceName xsi:type="xsd:string">CFP-RE12-VLHCPFM2</DeviceName></q1:getDeviceBasicInfo></s:Body>
</s:Envelope>

为什么会发生这种情况?

谢谢!

1 个答案:

答案 0 :(得分:0)

解决方案是将服务添加为Web参考而不是服务参考。这里的更多信息:

http://webservices20.blogspot.com/2008/10/interoperability-gotcha-visual-studio.html