我在我的客户端应用程序中使用第三方 .NET WebService。出于调试目的,我想捕获从我的服务器发送的 SOAP 请求。我该怎么做呢?这是在不使用 WCF 或 WSE 的情况下在 .NET 2.0 上完成的。
Wes P
问问题
20149 次
6 回答
12
不久前,我写了一篇关于此的文章,标题为“在 .NET 中记录 SOAP 消息”。
最简单的方法是使用 .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;
}
}
//…
}
于 2010-11-24T16:16:20.037 回答
5
如果出于调试目的,我只需将 Web 请求配置为使用代理并通过提琴手(http://www.fiddlertool.com)发送整个请求,那么您可以准确地看到通过网络传输的内容。
于 2008-09-29T17:56:05.187 回答
1
您可以使用许多选项。当然有一些商业工具(如 SOAPScope),但如果您只是想捕获请求/响应的原始内容,除了 Fiddler(Walden 已经提到过)之外,还有其他一些工具。
就个人而言,我一直是 Simon Fell 的TcpTrace和YATT的长期用户。
如果您对实际检测代码感兴趣,以便它可以自行完成(例如,通过将所有内容记录到文件或其他内容),那么您可能希望考虑在您的服务器上实现SoapExtension 。
于 2008-09-29T18:42:28.417 回答
0
您可以使用 SoapExtension 记录 Soap 调用。
于 2008-09-29T18:44:56.817 回答
0
我过去使用过 Web 服务、SOA 和 SOAP 测试工具 - soapUI并取得了很好的成功。
-Edoode
于 2009-01-19T13:37:46.100 回答
0
也许是wireshark?我一直使用它来捕获我的应用程序的流量。
于 2011-10-18T13:55:49.127 回答