首页 文章

记录服务SOAP请求和响应

提问于
浏览
6

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

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

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

2 回答

  • 11

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

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

  • 1

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

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

    另外,您可以看到我在项目中如何做到这一点 - wrapping textMessageEncoding,记录encoder,自定义绑定elementconfig .

相关问题