我有一个连接到第三方 Web 服务的 WCF 客户端代理。除了功能之外,代理几乎可以正常工作。
此功能与 ASMX 代理一起工作得很好。
我添加了服务跟踪日志记录,可以看到服务返回的响应。只有代理返回 null。
所以现在我确定代理有问题。
从这里到哪里?
解决方案 我发现了问题。WCF 没有 ASMX 代理那么宽容。服务 WSDL 指定返回的对象称为“数据”,而实际传回的 xml 称为“结果”
所以那是一场伟大的追逐!我想我在这个问题上浪费了 4 个小时!
我有一个连接到第三方 Web 服务的 WCF 客户端代理。除了功能之外,代理几乎可以正常工作。
此功能与 ASMX 代理一起工作得很好。
我添加了服务跟踪日志记录,可以看到服务返回的响应。只有代理返回 null。
所以现在我确定代理有问题。
从这里到哪里?
解决方案 我发现了问题。WCF 没有 ASMX 代理那么宽容。服务 WSDL 指定返回的对象称为“数据”,而实际传回的 xml 称为“结果”
所以那是一场伟大的追逐!我想我在这个问题上浪费了 4 个小时!
您可以尝试使用 Trace Viewer 更详细地分析 WCF 通信,并在遇到错误时找出更多详细信息。
在 app.config(客户端)和 web.config(服务器)中,您可以添加块。要启用跟踪,只需添加诊断块,应用程序运行时将在指定位置生成跟踪文件。这应该使您能够更深入地挖掘问题。
可以找到跟踪查看器:
("C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SvcTraceViewer.exe")
有关跟踪查看器使用情况的信息:
http://msdn.microsoft.com/en-us/library/aa751795.aspx
另外,它是什么类型的方法?它返回复杂类型还是简单类型?
补充:啊,很抱歉误读,没有意识到你无法控制服务器端。我会尝试更新服务参考/代理(您可能已经这样做了)并检查是否有任何更改。
恐怕 WCF 不会让追踪问题变得非常容易。是否可以为有效的调用和无效的调用提供方法签名,以便我们可以看到正在传递的数据类型?