Dot-Net

.NET 記錄客戶端上的 Soap 請求

  • December 6, 2019

我在我的客戶端應用程序中使用第三方 .NET WebService。出於調試目的,我想擷取從我的伺服器發送的 SOAP 請求。我該怎麼做呢?這是在不使用 WCF 或 WSE 的情況下在 .NET 2.0 上完成的。

如果出於調試目的,我只需將 Web 請求配置為使用代理並通過提琴手(http://www.fiddlertool.com)發送整個請求,那麼您可以準確地看到通過網路傳輸的內容。

不久前,我寫了一篇關於此的文章,標題為“在 .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;
   }
 }
 //…
}

引用自:https://stackoverflow.com/questions/149851