我在客户端应用程序中使用第三方.NET WebService.出于调试目的,我想捕获从我的服务器发送的SOAP请求.我该怎么做呢?这是在.NET 2.0上完成的,不使用WCF或WSE.
我刚刚写了一篇关于这篇文章的帖子,名为" 在.NET中记录SOAP消息 ".
最简单的方法是使用.NET提供的工具.
1.扩展课程SoapExtension
.
2. override the method ProcessMessage
to get a full output of your Soap Request, then output this information to a text file or event log.
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; } } //… }
如果是出于调试目的,我只是将Web请求配置为使用代理并通过fiddler(http://www.fiddlertool.com)发送整个请求,然后您就可以确切地看到通过网络传输的内容.