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

标签 c# .net soap web-services

我们开发的 C# 客户端应用程序调用第三方公司的外部 SOAP 网络服务。

现在我想跟踪在我们的应用程序中由 VS.NET 生成的 SOAP 代理生成并传输到外部 SOAP Web 服务的确切 SOAP 请求信封。

无法使用像 Wireshark 这样的网络监视器(如 here 所述)或使用 Microsoft 网络监视器的方法,因为外部 SOAP Web 服务仅提供 SSL/HTTPS URL,因此 HTTP 包的有效负载已加密并且不可见。

我的问题是:

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

最佳答案

如果您使用的是标准网络服务(不是 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 还是服务引用。

关于c# - 可以跟踪由 .NET Web 服务客户端发送的 SOAP 信封吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1669513/

相关文章:

c# - 如何在 Linq 左连接中使用常量值?

Java Soap 客户端到 wsdl url

使用 PEM 文件的 Java SSL SOAP 客户端

asp.net - 从 Controller 的操作中将 XML 作为 ActionResult 返回?

c# - 有没有办法等待所有任务直到特定结果为真,然后取消其余的?

api - 谷歌地图 API 是基于 REST 的吗?

c# - 您使用什么(免费)格式化C#代码?

c# - 什么是存储散列密码以便在测试期间轻松阅读/操作的好方法

c# - 如何将现有程序集转换为 ms 单元测试程序集?

c# - 关于 CoreFX 中 Stack 实现的分配