我在客户端应用程序中使用第三方.NET WebService。出于调试目的,我想捕获从我的服务器发送的SOAP请求。我该怎么做呢?这是在.NET 2.0上完成的,不使用WCF或WSE。
答案 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的TcpTrace和YATT的长期用户。
如果您对实际检测代码感兴趣,以便它可以单独执行(例如,通过将所有内容记录到文件或其他内容),那么您可能需要考虑实现SoapExtension你的服务器。
答案 3 :(得分:0)
您可以使用SoapExtension记录Soap调用。
答案 4 :(得分:0)
我过去曾使用the Web Service, SOA and SOAP Testing Tool - soapUI取得了很好的成功。
-Edoode
答案 5 :(得分:0)
也许 wireshark ?我一直用它来捕获我的应用程序的流量。