Tip: Peer Channel diagnostics using WCF Tracing/Message Logging


Scenario: You want to enable WCF tracing for troubleshooting purposes


Tip: You need to use the App.config file to enable WCF Tracing and Message Logging. The following (either 1 or 2 depending on your scenario) will end up generating a .svclog file named MyAppTraceFile.svclog. This file is viewable using the ServiceTraceViewer.exe tool (shipped with the Windows SDK - maybe found in the Tools directory)


1.      If you already have an App.config file that your application uses, modify it as follows:


a.  In the <system.serviceModel> section in your file, add the following tag:


 


<diagnostics wmiProviderEnabled="true">


            <messageLogging maxMessagesToLog="30000"


                    logEntireMessage="true"


                    logMessagesAtServiceLevel="true"


                    logMalformedMessages="true"


                    logMessagesAtTransportLevel="true">


            </messageLogging>


</diagnostics>


 


b.  Now, add the following additional <system.diagnostics> section anywhere after your <system.serviceModel> ends but within the root <configuration> section.


 


<system.diagnostics>


        <sources>


            <source name="System.ServiceModel" switchValue="Verbose, ActivityTracing" >


                <listeners>


                    <add name="xml" />


                </listeners>


            </source>


            <source name="System.ServiceModel.MessageLogging" switchValue="Verbose">


                <listeners>


                    <add name="xml" />


                </listeners>


            </source>


        </sources>


        <sharedListeners>


            <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="MyAppTraceFile.svclog" />


        </sharedListeners>


        <trace autoflush="true" />


    </system.diagnostics>


 


2.      If you have configured PeerChannel imperatively in code and don’t have a config file that your App uses, simply create one with the following contents:


 


<configuration>


    <system.serviceModel>


        <diagnostics wmiProviderEnabled="true">


            <messageLogging maxMessagesToLog="30000"


                    logEntireMessage="true"


                    logMessagesAtServiceLevel="true"


                    logMalformedMessages="true"


                    logMessagesAtTransportLevel="true">


            </messageLogging>


        </diagnostics>


    </system.serviceModel>


    <system.diagnostics>


        <sources>


            <source name="System.ServiceModel" switchValue="Verbose, ActivityTracing" >


                <listeners>


                    <add name="xml" />


                </listeners>


            </source>


            <source name="System.ServiceModel.MessageLogging" switchValue="Verbose">


                <listeners>


                    <add name="xml" />


                </listeners>


            </source>


        </sources>


        <sharedListeners>


            <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="MyAppTraceFile.svclog" />


        </sharedListeners>


        <trace autoflush="true" />


    </system.diagnostics>


</configuration>


 


-Shalini.

Skip to main content