Advanced IIS Troubleshooting with Tracing and Debugging

Applies To: Windows Server 2003, Windows Server 2003 with SP1

Up to this point, this section has explored problems and issues that are specific to IIS, its interaction with various Windows operating system mechanisms (like the file system and security), and its implementation of the HTTP protocol. These types of problems are identified by definitive error messages and demonstrate specific faulty behaviors. In addition, these types of problems usually reveal themselves early — during either application development or initial configuration of the IIS application environment. For example, problems with permissions usually appear during security configuration, which usually occurs during application deployment. Problems like these display symptoms immediately, making it is easy to identify the problem.

Today's Web-based applications often have many components and systems that interact. This complexity provides greater opportunity for components to fail or to behave in unexpected ways. Further complicating matters, large and complex applications often exhibit subtle or non-specific symptoms. The effects of such problems are abstract and might seem random. For example, a problem with data access synchronization might cause an application to stop responding in one instance, but a crash in another. Such "quirks" can occur deep within an application's processing, often masking or distorting symptoms and ultimately hiding the root cause of the problem.

IIS is the primary runtime environment for the execution of application logic implemented in custom ISAPI applications, ASP, ASP.NET, or a Web service. These components often communicate with middle-tier business logic servers and database servers. Consequently, IIS is often the main execution environment for the core workings of an application and, therefore, IIS is the environment where problems begin or symptoms are propagated.

This section discusses tracing and debugging, advanced troubleshooting techniques for isolating problems in applications and IIS components.