c# - 在 C# 客户端中捕获 SOAP 消息

标签 c# web-services logging soap

我一直致力于用 C# 编写一个使用第三方 Web 服务的客户端。我有一个来自他们的 wsdl,它生成的引用在大多数情况下都可以正常工作。然而,我遇到了一些问题,并且运行该服务的好心人没有提供任何帮助。

我推断,查明问题的最有效方法是捕获出站和入站 SOAP 消息,以便与设计文档中显示的原型(prototype)进行比较。我知道,根据 wsdl 和现有 Java 应用程序的代码(及其自己的示例),我在调用服务的方法时提供了正确的参数。如果我可以证明我发送给服务的消息符合他们的原型(prototype),那么我至少可以将问题转嫁给他们,并证明这是他们的错,而不是我的错,从而(希望)使他们要么提供更新的文档,要么修复服务。

我不明白如何在 C# 中设置这种消息捕获。我读过很多有关 SoapExtension 和 WCF 等的内容,但这不是 WCF 应用程序,并且当我运行该应用程序时,向 app.config 添加任何类型的日志记录信息似乎没有任何作用。我在网上找到的其他代码示例也都不起作用。

我应该如何处理这个问题?是否有必要尝试将此客户端转换为 WCF 平台(如果这样做,对创建控制台界面和独立 GUI 有何影响)?我是否应该尝试创建一个继承 wsdl 生成的类的派生类并从头开始对捕获进行编码?我是否错过了某种方便的工具,可以为我完成这一切,而不需要我做一堆编码?

非常感谢任何帮助。

最佳答案

如果您只想从 Web 服务调用中捕获原始数据,请查看以下内容:

http://www.soapui.org/

我一直用它来测试。

关于c# - 在 C# 客户端中捕获 SOAP 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13570341/

相关文章:

c# - 在 C# 中从 XLSX 中读取数据

java - weblogic 上的 Web 服务客户端应用程序调用 Web 服务

git - 具有文件状态的 Mercurial 日志格式

python - 捕获 SysLogHandler 的输出

c# - 具有空和非空类别的 WinForms PropertyGrid

c# - 使用 C# 进行文件压缩的​​最佳方法

c# - 将十六进制解析为颜色系列的算法

web-services - Sitecore:从 Field 值以编程方式解析 Url

Java Web 服务器应用程序

javascript - morgan 日志记录在 keystone 应用程序中不起作用