.NET日志或查看SOAP WebService的调用/响应

时间:2009-06-19 19:42:36

标签: .net web-services logging soap debugging

检查电话的最佳方法是什么?来自.NET中的Web服务的响应?
我正在与用Perl编写的Web服务进行交互并遇到问题 如何捕获呼叫和响应的文本?

更新
根据评论澄清: 我想通过.NET来做这件事,所以我可以在出现问题时记录或通过电子邮件发送它。

4 个答案:

答案 0 :(得分:10)

您可以通过创建SoapExtension并在您的网络服务客户端中启用它来完成此操作:

  

System.Web.Services.Protocols.SoapExtension Class (MSDN)

上面的链接提供了一个示例代码框架,用于记录对文件的请求/响应。

要在您的应用程序中启用,请将以下内容添加到您的web.config或app.config:

<webServices>
    <soapExtensionTypes>
        <add type="YourNamespace.TraceExtension, AssemblyName" 
             priority="0" group="High"/>
    </soapExtensionTypes>
</webServices>

我自己的SOAP跟踪扩展在其自己的项目/程序集中实现。每当我需要调试请求/响应时,我只需将DLL放在应用程序文件夹(/ bin for ASP.NET)中,并添加对配置文件的引用,如上所述。

例如:

<webServices>
   <soapExtensionTypes>
      <add 
         type="DebugTools.SOAP.SOAPTrace.SoapTraceExtension, DebugTools.SOAP" 
         priority="0" group="High"/>
   </soapExtensionTypes>
</webServices>

DebugTools.SOAP.SOAPTraceSoapTraceExtension的名称空间 DebugTools.SOAP是包含soap跟踪代码的程序集的名称。

答案 1 :(得分:4)

Fiddler是您在网络服务这个不稳定世界中最好的朋友。


不,它没有像指出的那样在代码中做任何事情。你也不想这样做 - 调试不应该改变进程的语义,或者你正在调试你的调试代码。

另外,我告诉我一些wirehark,但是fiddler对HTTP的东西更好一点,因为它专注于HTTP。如果我从线上抓取字节,那就是Wirehark。

答案 2 :(得分:0)

就个人而言,我喜欢使用数据包嗅探器,例如Wireshark。它是检查任何类型网络流量的绝佳工具。

答案 3 :(得分:0)

在WCF Web服务或客户端中,您只需配置跟踪和/或消息日志记录即可。这可以在运行时完成,不需要更改代码。