WCF - 查看对安全Web服务的xml请求/响应

kai*_*lya 6 .net c# xml wcf

我有一个WCF服务应用程序,在这个应用程序中,我通过安全连接调用第三方Web服务.

我一直在尝试使用fiddler来查看请求响应流,但是在尝试了半天以上的应用程序后,我已经放弃了它.虽然我向受信任区域提供了更多的小提琴证书,但它有证书问题.

如果只是看到我对第三方Web服务的xml请求和响应,我最好的选择是什么?

我正在使用生成的代理类,所以我目前无法访问我发送和接收的原始xml.我很好奇,如果我过度复杂化可以做得更简单的事情.这是我的开发机器,我几乎可以访问所有内容,没有任何限制.

请问一个简单的方法吗?

编辑:

此时我甚至不需要使用跟踪.我只需要查看请求/响应的序列化输出.即使我可以从Visual Studio调试器或其他这样做这将有所帮助.

mar*_*c_s 7

使用WCF跟踪 - 它运行良好,并附带一个方便的跟踪查看器实用程序.

您可以设置多个选项 - 但在其核心,您必须将这样的内容添加到您的WCF服务和客户端配置:

<configuration>
   <system.diagnostics>
      <sources>
            <source name="System.ServiceModel" 
                    switchValue="Information, ActivityTracing"
                    propagateActivity="true">
            <listeners>
               <add name="traceListener" 
                   type="System.Diagnostics.XmlWriterTraceListener" 
                   initializeData= "c:\log\Traces.svclog" />
            </listeners>
         </source>
      </sources>
   </system.diagnostics>
</configuration>
Run Code Online (Sandbox Code Playgroud)

开箱即用的是各种"跟踪侦听器" - 一个写入Visual Studio中的输出控制台,这一个是创建XML文件,或者您可以将内容存储在SQL Server数据库表中 - 整个机制是可扩展的,你也可以编写自己的跟踪监听器!

另请参阅此处:使用WCF跟踪和此处的WCF跟踪常见问题解答以获取更多信息.


kai*_*lya 4

由于我试图从引用我的 WCF 应用程序的 asmx Web 服务读取肥皂消息,因此问题的解决方案是创建一个继承自 System.Web.Services.Protocols.SoapExtension 的类,注册该类在 web.config 中,以便所有流量都通过此类路由并查看。

所有这些通信都不会显示在 WCF 跟踪中,因此这还不够。然而,我学习它很有用,所以现在我能够看到我的 wcf 服务应用程序和 Web 应用程序之间发生的所有事情。

这篇文章为我解决了如何在使用网络服务时捕获肥皂信封

  • 链接对我不起作用,但这个链接起作用了:http://blog.encoresystems.net/articles/how-to-capture-soap-envelopes-when-consuming-a-web-service.aspx (4认同)