【问题标题】:.NET Log Soap Request on Client.NET 记录客户端上的 Soap 请求
【发布时间】:2008-09-29 17:49:47
【问题描述】:

我正在我的客户端应用程序中使用第三方 .NET WebService。出于调试目的,我想捕获从我的服务器发送的 SOAP 请求。我该怎么做呢?这是在 .NET 2.0 上完成的,没有使用 WCF 或 WSE。

【问题讨论】:

    标签: .net web-services logging .net-2.0


    【解决方案1】:

    我不久前写了一篇关于此的帖子,标题为“Logging SOAP Messages in .NET”。

    最简单的方法是使用 .NET 已经提供的工具

    1. 扩展类SoapExtension

    2. 覆盖方法 ProcessMessage 以获得 Soap 请求的完整输出,然后将此信息输出到文本文件或事件日志。

    public class SoapMessageLogger : SoapExtension
    {
      //…
      public override void ProcessMessage(SoapMessage message)
      {
        switch(message.Stage)
        {
          case SoapMessageStage.BeforeDeserialize:
            LogResponse(message);
            break;
          case SoapMessageStage.AfterSerialize:
            LogResponse(message);
            break;
          // Do nothing on other states
          case SoapMessageStage.AfterDeserialize:
          case SoapMessageStage.BeforeSerialize:
          default:
            break;
        }
      }
      //…
    }
    

    【讨论】:

      【解决方案2】:

      如果出于调试目的,我只需将 Web 请求配置为使用代理并通过提琴手 (http://www.fiddlertool.com) 发送整个请求,然后您就可以准确地看到通过网络传输的内容。

      【讨论】:

      • 在放弃并尝试提琴手之前,我尝试了大约 6 种不同的方式在代码中执行此操作。如果我读过它并看到它支持加密流量,我会首先开始使用它。
      【解决方案3】:

      您可以使用许多选项。当然有一些商业工具(如 SOAPScope),但如果您只是想捕获请求/响应的原始内容,除了 Fiddler(Walden 已经提到)之外,还有其他一些工具。

      就个人而言,我一直是 Simon Fell 的 TcpTraceYATT 的长期用户。

      如果您对实际检测代码感兴趣,以便它可以自行完成(例如,通过将所有内容记录到文件或其他内容),那么您可能希望考虑在您的服务器上实现 SoapExtension .

      【讨论】:

        【解决方案4】:

        您可以使用 SoapExtension 记录 Soap 调用。

        http://msdn.microsoft.com/en-us/magazine/cc164007.aspx

        【讨论】:

        • 您的链接已损坏。
        【解决方案5】:

        我过去曾使用过the Web Service, SOA and SOAP Testing Tool - soapUI 并取得了很好的成功。

        -Edoode

        【讨论】:

          【解决方案6】:

          也许 wireshark ?我一直使用它来捕获我的应用程序的流量。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-12-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-02-01
            • 2015-12-05
            相关资源
            最近更新 更多