Announcing the Windows Communication Foundation Live Service Trace Viewer


by Craig McMurtry and Vittorio Bertocci


Announcing the ...

Windows Communication Foundation

Live Service Trace Viewer  Beta I


·         Purpose

·         Design

·         Configuration

·         Use


Purpose :


Figure 1: The Live Service Trace Viewer



The Service Trace Viewer provided with the .NET 3.0 SDK allows the operation of Windows Communication Foundation applications to be examined after the fact. 


The Live Service Trace Viewer shows their interaction while it’s happening!  


As such, it can serve as a tool for diagnostics and also to make any Windows Communication Foundation demonstration come alive.


A video of the Live Service Trace Viewer in action can be found here. The Channel 9 interview with Laurence Melliol and Craig is here. 



Figure 2: Design of the Live Service Trace Viewer


The two primary components of the Live Service Trace Viewer are the Live Trace Listener and the Viewer. 


The Live Trace Listener:

Any Windows Communication Foundation application can be configured to use the Live Trace Listener. The Live Trace Listener interprets Windows Communication Foundation activity and message log traces. It incorporates a Sender that transmits the interpretations to a designated queue, and a Receiver that raises events as it reads interpretations from the queue. 


The Live Service Trace Viewer:

The Live Service Trace Viewer handles the events raised by the Receiver and displays them in a user interface that incorporates a Windows Presentation Foundation control specially designed for the purpose by IdentityMine. 


This modular design provides for the possibility of using various data sources, such as trace files instead of applications configured to use the Live Trace Listener directly, as well as for creating any number of alternate Viewers. 






Figure 3: Configuring a Windows Communication Foundation application to log messages





1. Install the July CTP or RC 1 release of .NET Framework 3.0.  


2. Deploy the Live Service Trace Viewer:

Download and unblock this archive, extract the components, and compile the solution. 


3. Configure applications to use the Live Trace Listener

a.      Reference the LiveTrace.dll assembly in the attached archive (or simply copy the assembly into the same folder as your executables). 

b.      Modify the diagnostics settings in the application’s configuration file. That can be done automatically. Simply select the Existing Configuration File item from the Live Service Trace Viewer’s Configure Node menu, shown in figure 3, and point the file dialog box that appears at the application’s configuration file. 

c.       Recompile the application. 






Figure 4: The Live Trace Viewer User Interface


Figure 5: Expanded Node View


Figure 6: Collapsed Node View


Figure 7: Grouping Nodes




As shown in figure 4, to the left, the Live Service Trace Viewer user interface incorporates a Node List, a Connections List, a Detail Panel, and the Viewer. Two resizing bars are provided for adjusting the relative size of those constituent parts. 


The Node List

As services start listening for messages, they appear in the Node List. Clients appear in the Node List when they first send a message. Selecting an entry in the Node List causes information about the corresponding service or client’s endpoints to be displayed in the Detail Pane. 


The Connection List

When messages are transmitted between two nodes, an entry appears in the Connections List. Selecting an entry in the Connections List causes the content of the messages transmitted between the two corresponding nodes to be displayed in the Detail Pane. 


The Viewer

Double-clicking an entry in the Node List causes the corresponding service or client to be displayed in the Viewer. 


Double-clicking items in the Viewer toggles between the expanded view of the item, shown in figure 5, to the left, and the collapsed view, shown in figure 6. 


Individual items in Viewer can be selected by left-clicking on them, and selected items can be dragged to any position. 


Multiple items can be selected at once by holding down the Ctrl key while selecting each item. With multiple items selected the Group Button can be used to group the selected items, as shown in figure 7. Grouping items together allows one to move them together. When a group of items are selected, their grouping can be cancelled using the Ungroup Button. 


The Viewer can be cleared of contents using the Clear button. 



Please report any defects or request enhancements to this beta application by e-mailing Craig McMurtry & Vittorio Bertocci. One known limitation is that this version does not support duplex contracts.