我们开发的 C# 客户端应用程序调用第三方公司的外部 SOAP 网络服务。
现在我想跟踪在我们的应用程序中由 VS.NET 生成的 SOAP 代理生成并传输到外部 SOAP Web 服务的确切 SOAP 请求信封。
无法使用像 Wireshark 这样的网络监视器(如 here 所述)或使用 Microsoft 网络监视器的方法,因为外部 SOAP Web 服务仅提供 SSL/HTTPS URL,因此 HTTP 包的有效负载已加密并且不可见。
我的问题是:
有没有一种方法可以配置 .NET 内置的 Web 服务客户端类来输出/跟踪/记录它们正在生成/接收的底层 HTTP 请求和响应? (或者订阅某种事件?)
最佳答案
如果您使用的是标准网络服务(不是 WFC),您可以按照此处所述扩展 SoapExtension 类:
如果您使用的是 WFC,则可以按照此处所述实现 IEndpointBehavior 和 IClientMessageBehavior:
http://weblogs.asp.net/paolopia/archive/2007/08/23/writing-a-wcf-message-inspector.aspx
我会同时使用两者,具体取决于我使用的是 Web 还是服务引用。
关于c# - 可以跟踪由 .NET Web 服务客户端发送的 SOAP 信封吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1669513/