客户端上的.NET日志肥皂请求

时间:2008-09-29 17:49:48

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

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

6 个答案:

答案 0 :(得分:11)

前一段时间我写了一篇关于这篇文章的文章,标题为“Logging SOAP Messages in .NET”。

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

1。扩展课程 SoapExtension

2. 覆盖方法 ProcessMessage 以获取Soap Request的完整输出,然后将此信息输出到文本文件或事件日志。< / p>

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;
    }
  }
  //…
}

答案 1 :(得分:5)

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

答案 2 :(得分:1)

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

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

如果您对实际检测代码感兴趣,以便它可以单独执行(例如,通过将所有内容记录到文件或其他内容),那么您可能需要考虑实现SoapExtension你的服务器。

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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

-Edoode

答案 5 :(得分:0)

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