【问题标题】:Logging SOAP requests and responses记录 SOAP 请求和响应
【发布时间】:2015-04-15 09:43:48
【问题描述】:

我已经为我的应用程序添加了一个服务引用,随后会生成相应的代理类。

在我的代码中,我利用这些代理类来生成我的服务调用并解析结果。

因为 .Net 负责 HTTP/HTTPS 请求和响应的绑定,所以我无法查看我的系统生成的确切 SOAP 请求。

如何记录系统生成的 RAW http 请求和响应,特别是使用 Trace.Log,而无需使用 Fiddler 或 Wireshark 或任何其他反向代理?

更新

以下事实也值得一提:

  • 我正在使用 Visual Studio Professional 2013
  • 我使用的服务是由第三方托管和拥有的 JAX-WS 服务。这是我无法控制的。
  • 我从一个类库调用该服务,该类库是从一个 ASP.Net MVC 应用程序(托管在 IIS7.5 上)调用的
  • .Net Framework 4.5

【问题讨论】:

  • 即使您调用的 Web 服务是外部 Web 服务,您仍然应该能够使用下面的 IClientMessageInspector 解决方案。如果您添加服务引用,它仍然会生成 WCF 代理,您最终将在配置中获得端点引用,并且您应该能够为该端点配置端点行为
  • @BunkerMentality 谢谢。我要试一试。我知道正在生成代理,但我不确定它是否专门用于 WCF 代理。

标签: .net web-services wcf


【解决方案1】:

看看实现 IClientMessageInspector 接口,它公开了两个方法

AfterReceiveReply 允许在收到回复消息后但在将其传递回客户端应用程序之前检查或修改消息。

BeforeSendRequest 允许在请求消息发送到服务之前检查或修改消息。

https://msdn.microsoft.com/en-us/library/System.ServiceModel.Dispatcher.IClientMessageInspector(v=vs.110).aspx

这是一篇博客文章,描述了将消息读入原始 xml 的实现,希望您能够更改它以满足您的需要 http://westdiscgolf.blogspot.ie/2012/09/debugging-wcf-messages-before.html

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 2011-11-02
    • 1970-01-01
    • 2015-03-11
    • 2023-03-14
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多