请不要使用WCF 跟踪工具回答,除非明确说明如何捕获实际消息,包括标头和错误。此链接不起作用。
此外,IClientMessageInspector
除非您知道如何让它包含所有标题(它不包含)并捕获具有无法解析的错误元素的响应,否则不要回答。
使用 pre-wcf Web 服务,您可以编写一个SoapExtension
完美运行的服务。
实现 IEndpointBehavior 的类允许您捕获和记录入站/出站消息。
您还需要一个实现 IDispatchMessageInspector 的类
我也发现了这个:
<system.diagnostics>
<sources>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="messages"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="c:\log\wcfMessages.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
<system.serviceModel>
<diagnostics>
<messageLogging
logEntireMessage="true"
logMalformedMessages="true"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true"
maxMessagesToLog="1000000"
maxSizeOfMessageToLog="10000000"/>
</diagnostics>
</system.serviceModel>
这并不理想,因为您必须使用工具来查看消息,但它似乎确实捕获了带有所有标题和错误等的实际消息。