使用 SOAP 数据包调试 Web 服务

Posted

技术标签:

【中文标题】使用 SOAP 数据包调试 Web 服务【英文标题】:Debugging Web Service with SOAP Packet 【发布时间】:2010-09-06 22:02:23 【问题描述】:

我有一个用 C# 创建的 Web 服务和一个由我的客户提供的测试工具。不幸的是,我的 Web 服务似乎没有解析测试工具创建的对象。我相信问题在于序列化肥皂包。

使用 TCPTrace 我能够将肥皂数据包传递给 Web 服务,但只能在远程机器上进行,因此我无法在那里对其进行调试。有没有办法用生成的肥皂包调用我的本地 web 服务,而不是我当前的测试工具,我手动创建对象并通过 web 引用调用 web 服务?

[编辑] 我得到肥皂包的机器在一个虚拟机上,所以我不能把它链接到我的机器上。我想我正在寻找一种工具,可以将肥皂包粘贴到其中,然后它会调用我的网络服务

【问题讨论】:

【参考方案1】:

一个有点手动的过程是使用 Firefox 的 Poster 插件。还有一个名为 SoapUI 的 Java 实用程序,它有一些基于发现的自动化模板,您可以修改这些模板并针对您的服务运行。

【讨论】:

【参考方案2】:

默认情况下,.Net 不允许您将 TCPTrace 或 Fiddler(我更喜欢)之类的数据包分析器连接到 localhost 或 127.0.0.1 连接(原因我现在忘记了..)

最好的方法是尽可能通过完整的 IP 地址或 FQDN 引用您的 Web 服务。这将允许您在您选择的工具中跟踪调用。

【讨论】:

【参考方案3】:

与palehorse 相同,使用soapUI 或直接使用该功能的特定组件:TCPMon。

【讨论】:

【参考方案4】:

前几天刚刚在本地计算机上使用 TCPTrace 进行了此操作。我将hosts文件中的远程主机映射到127.0.0.1。在 8080 上运行本地 Web 服务器,在 80 上运行 TcpTrace 指向 127.0.0.1:8080。可能您的问题是尝试在端口 80 上同时运行,这将无法正常工作。

【讨论】:

以上是关于使用 SOAP 数据包调试 Web 服务的主要内容,如果未能解决你的问题,请参考以下文章

接受 SOAP 数据作为原始 XML

Fiddler 抓包探究

OSGi 捆绑为插件架构中的 SOAP Web 服务

五中抓包工具

Fiddler是最强大最好用的Web调试工具之一--网站抓包分析

iOS 数据包长度