记录服务的SOAP请求和响应

7
我正在尝试在C#中记录服务的soap请求和响应消息。我有一个现成的soap扩展可以做到所有这些,但我无法将其添加到服务方法中。
由于我在VS项目中添加了服务引用而不是Web服务引用,因此当我检查此服务的引用文件时,我看不到执行远程服务调用的方法。所有我看到的示例都是添加到Web服务,其引用格式不同。
在这种情况下,我该如何记录SOAP消息呢?
2个回答

13

Soap扩展仅用于使用ASMX服务或客户端 = 添加Web引用。一旦您使用了添加服务引用,您就使用WCF客户端API,并且不能使用Soap扩展。您必须创建消息检查器

如果您仅需要进行调试目的的消息记录,则可以使用内置的WCF消息记录


您的回答为我节省了很多时间。在互联网上很难找到“Soap扩展仅用于使用ASMX基于服务或客户端=添加Web引用”的信息。再次感谢您。 - Rupesh

2
另一种查看XML SOAP的方法是使用自定义MessageEncoder。与IDispatchMessageInspector/IClientMessageInspector的主要区别在于它在更低的级别上工作,因此它捕获原始字节内容,包括任何格式不正确的XML。
为了使用这种方法实现跟踪,您需要将标准的textMessageEncoding与自定义消息编码器包装在新的绑定元素中,并将该自定义绑定应用于您的配置中的端点。
您可以看到我的项目中是如何实现的,例如 - wrapping 文本消息编码、日志记录 encoder、自定义绑定 elementconfig

听起来很酷 - 你能提供一些简单的例子,而不是链接到600页的文档吗? - Christian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接