我一直致力于用 C# 编写一个使用第三方 Web 服务的客户端。我有一个来自他们的 wsdl,它生成的引用在大多数情况下都可以正常工作。然而,我遇到了一些问题,并且运行该服务的好心人没有提供任何帮助。
我推断,查明问题的最有效方法是捕获出站和入站 SOAP 消息,以便与设计文档中显示的原型(prototype)进行比较。我知道,根据 wsdl 和现有 Java 应用程序的代码(及其自己的示例),我在调用服务的方法时提供了正确的参数。如果我可以证明我发送给服务的消息符合他们的原型(prototype),那么我至少可以将问题转嫁给他们,并证明这是他们的错,而不是我的错,从而(希望)使他们要么提供更新的文档,要么修复服务。
我不明白如何在 C# 中设置这种消息捕获。我读过很多有关 SoapExtension 和 WCF 等的内容,但这不是 WCF 应用程序,并且当我运行该应用程序时,向 app.config 添加任何类型的日志记录信息似乎没有任何作用。我在网上找到的其他代码示例也都不起作用。
我应该如何处理这个问题?是否有必要尝试将此客户端转换为 WCF 平台(如果这样做,对创建控制台界面和独立 GUI 有何影响)?我是否应该尝试创建一个继承 wsdl 生成的类的派生类并从头开始对捕获进行编码?我是否错过了某种方便的工具,可以为我完成这一切,而不需要我做一堆编码?
非常感谢任何帮助。
最佳答案
关于c# - 在 C# 客户端中捕获 SOAP 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13570341/