【问题标题】:Logging service SOAP request and response记录服务 SOAP 请求和响应
【发布时间】:2011-11-02 14:27:41
【问题描述】:

我正在尝试在 C# 中记录服务的肥皂请求和响应消息。我有一个现成的soap扩展可以完成所有这些,但是我无法将它添加到服务方法中。

由于我在我的 VS 项目中添加了一个服务引用,而不是 Web 服务引用,所以当我检查此服务的引用文件时,我没有看到正在调用远程服务的方法。我看到的所有示例都是添加到具有不同参考格式的 Web 服务。

在这种情况下如何记录肥皂消息?

【问题讨论】:

    标签: c# wcf web-services logging soap


    【解决方案1】:

    Soap 扩展仅用于使用基于 ASMX 的服务或客户端 = 添加 Web 参考。使用添加服务引用后,您将使用 WCF 客户端 API,并且不能使用 Soap 扩展。您必须创建message inspector instead

    如果您仅出于调试目的需要消息记录,则可以使用内置的WCF message logging

    【讨论】:

    • 你的回答为我节省了很多时间。 “Soap 扩展仅用于使用基于 ASMX 的服务或客户端 = 添加 Web 参考”的信息在互联网上并不容易找到。再次非常感谢
    【解决方案2】:

    还有另一种查看 XML SOAP 的方法 - custom MessageEncoder。与 IDispatchMessageInspector / IClientMessageInspector 的主要区别在于它在较低级别上工作,因此它捕获原始字节内容,包括任何格式错误的 xml。

    为了使用这种方法实现跟踪,您需要将标准textMessageEncodingcustom message encoder 包装为新的binding element,并将该自定义绑定应用到config 中的端点。

    你也可以看看我在我的项目中是如何做到的—— wrapping textMessageEncoding,记录 encoder,自定义绑定 elementconfig

    【讨论】:

    • 听起来很酷 - 你能提供一些简单的例子而不是 600 页文档的链接吗?
    猜你喜欢
    • 2015-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2010-12-16
    相关资源
    最近更新 更多