可以跟踪.NET Web服务客户端发送的SOAP信封吗?

Uwe*_*eim 7 .net c# soap web-services

我们开发的AC#客户端应用程序调用第三方公司的外部SOAP Web服务.

现在,我想跟踪在我们的应用程序中由VS.NET生成的SOAP代理生成的确切SOAP请求包络,并转移到外部SOAP Web服务.

(如所描述的使用网络监视器等的Wireshark方法这里)或使用Microsoft网络监视器没有选项,因为externl SOAP的Web服务只提供了一个SSL/HTTPS URL,所以HTTP包的有效载荷被加密和不可见.

我的问题是:

有没有办法配置.NET内置的Web服务客户端类来输出/跟踪/记录他们生成/接收的底层HTTP请求和响应?(或者可能是某种订阅事件?)

Jam*_*ley 6

如果您使用的是标准Web服务(而不是WFC),则可以按照此处所述扩展SoapExtension类:

http://www.blog.encoresystems.net/articles/how-to-capture-soap-envelopes-when-consuming-a-web-service.aspx

如果您正在使用WFC,那么您可以实现IEndpointBehavior和IClientMessageBehavior,如下所述:

http://weblogs.asp.net/paolopia/archive/2007/08/23/writing-a-wcf-message-inspector.aspx

我使用两者,取决于我是使用Web还是服务引用.