Недавно я столкнулся с той же проблемой, что и при обновлении исходного вопроса: трассировка показала, что сообщение было отправлено, но самого сообщения там не было. Для меня исправлением было добавить источник System.ServiceModel.MessageLogging. Вот мой раздел конфигурации system.diagnostics:
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true" >
<listeners>
<add name="xml"/>
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="xml"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="C:\logfiles\Traces.svclog" />
</sharedListeners>
</system.diagnostics>
И мой system.serviceModel / раздел диагностики:
<diagnostics>
<messageLogging
logMessagesAtTransportLevel="true"
logMessagesAtServiceLevel="true"
logMalformedMessages="true"
logEntireMessage="true"
maxSizeOfMessageToLog="65535000"
maxMessagesToLog="500" />
</diagnostics>
Как только я добавил источник MessageLogging, TraceViewer показал трассировку «Message Log Trace», которая содержала фактические сообщения SOAP.