Although the sample modules in the preceding examples are relatively simple, they demonstrate how it is now possible to add virtually limitless enhanced functionality to the core web server system as well as web applications.
As you no doubt know, however, the more complex applications become, the more difficult it is to diagnose when something goes wrong. In the past, the diagnosis of misbehaving web applications and extensions was arguably the single-most difficult and time-consuming task in running and managing web applications.
The designers of IIS 8.0 recognized this fact and provided debugging and diagnostic tools. Chapter 23, “Diagnostics and Troubleshooting,” provides an in-depth treatment of the tracing tools and how to capture and manage tracing information.
For the module programmer, though, the capacity to hook into the built-in tracing subsystem provides some major time-saving capabilities. The advantage of using the tracing system in favor of alternative methods, such as writing debug output to a text file or Event Viewer logging, is that the code has no effect unless a trace listener is attached. Therefore, any diagnostic resource overheads are limited until it is required, and then the diagnostics can be activated by the user when and as required.
This tutorial expands on the managed code module example, adding some tracing output. You will perform the following steps, as detailed in the ...