我们开发的C#客户端应用程序调用第三方公司的外部SOAP Web服务。
现在,我想在我们的应用程序中跟踪由VS.NET生成的SOAP代理生成的确切SOAP请求包络,并转移到外部SOAP Web服务。
使用像Wireshark这样的网络监视器(如here所述)或使用Microsoft网络监视器的方法是没有选择的,因为externl SOAP Web服务只提供SSL / HTTPS URL,因此HTTP包的有效负载是加密的,不可见。
我的问题是:
是否有一种方法可以配置.NET内置的Web服务客户端类来输出/跟踪/记录正在生成/接收的基础HTTP请求和响应? (或者也许某种事件要订阅?)
答案 0 :(得分:6)
如果您使用的是标准Web服务(而不是WFC),则可以按照此处的说明扩展SoapExtension类:
如果你正在使用WFC,那么你可以实现IEndpointBehavior和IClientMessageBehavior,如下所述:
http://weblogs.asp.net/paolopia/archive/2007/08/23/writing-a-wcf-message-inspector.aspx
我使用两者,取决于我是使用网络还是服务引用。
答案 1 :(得分:3)
您可以使用fiddler作为代理,从而监控HTTP / HTTPS请求。这不需要您编写任何代码。
值得注意的是,使用Fiddler调试HTTPS请求时需要注意。本页介绍了如何完成。
Fiddler Web Debugger - Debugging HTTPS traffic with Fiddler2
答案 2 :(得分:3)