O'Reilly logo

ASP.NET Cookbook by Geoffrey T. LeBlond, Michael A Kittel

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

10.5. Uncovering Problems Within Dual-Use Components

Problem

Because you intend to use a business component in both web and non-web applications, you want to enable tracing within the component without having to reference its current HTTP context.

Solution

Create your own trace listener that inherits from the TraceListener class, overrides the Write and WriteLine methods, and references the current HTTP context to output the message. A sample trace listener we’ve written to illustrate this solution is shown in Example 10-12 (VB) and Example 10-13 (C#).

Next, modify web.config, as shown in Example 10-14, to add the listener to the Listeners collection and make it available to your application.

In your non-web-specific components, add plain-vanilla Trace.Write statements to output any desired information to the trace log, as shown in our sample component in Example 10-15 (VB) and Example 10-16 (C#).

A web form and the associated VB and C# code-behind we’ve written to test the tracing in our non-web-specific component are shown in Example 10-17 through Example 10-19.

Discussion

The .NET Framework uses the concept of trace listeners in its handling of trace messages. By default, the TraceListeners collection contains a single listener (DefaultTraceListener) when you enable tracing. Additional listeners can be added via the web.config file or programmatically. When a Trace.Write is executed, all listeners in the TraceListeners collection receive and process the message. It is this mechanism ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required