If you would like to see the contents of your WCF message body packet as understood by the server, you can enable WCF message logging via a few adjustments in your WCF Service Web.config file and by then by using the Microsoft Service Trace Viewer application to view it.
I found best results by creating a directory on your system drive, C:\logs\ and storing your WCF messages in there. Everytime I specified the .svclog file to be in the same directory as where my app was, it wasn’t being created, but that could just be my local system permissions at play.
So all you need to do to enable this is in the Web.config of your WCF Service (Host):
<system.diagnostics>
<sources>
<source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelMessageLoggingListener">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="c:\logs\web_messages.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
<filter type="" />
</add>
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
<system.serviceModel>
<diagnostics>
<messageLogging logEntireMessage="true" logMalformedMessages="true"
logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true"
maxSizeOfMessageToLog="2147483647" />
</diagnostics>
Then run the client app and perform your WCF call, a new web_messages.svclog file should have been created which can now be opened and viewed.
The most interesting data will be under the XML and Messages tabs once you have clicked a message to view.
The default view is not bad, but by pressing ALT-3 within the trace viewer application you will enter message view which I feel is better suited for messaging viewing (how profound).
<sources>
<source name=”System.ServiceModel.MessageLogging” switchValue=”Warning, ActivityTracing”>
<listeners>
<add type=”System.Diagnostics.DefaultTraceListener” name=”Default”>
<filter type=”" />
</add>
<add name=”ServiceModelMessageLoggingListener”>
<filter type=”" />
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData=”c:\logs\web_messages.svclog” type=”System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″
name=”ServiceModelMessageLoggingListener” traceOutputOptions=”Timestamp”>
<filter type=”" />
</add>
</sharedListeners>
<trace autoflush=”true” />
</system.diagnostics>
<system.serviceModel>
<diagnostics>
<messageLogging logEntireMessage=”true” logMalformedMessages=”true”
logMessagesAtServiceLevel=”true” logMessagesAtTransportLevel=”true”
maxSizeOfMessageToLog=”2147483647″ />
</diagnostics>
Post a Comment