November 14, 2015

Two Tips for Debugging Apps in IIS

If you develop web sites or services hosted in IIS, here are two tips to make debugging on your development machine easier.

Disable Health Monitoring

IIS application pools have health monitoring built in to ensure processes are responding to requests in a timely manner. If a process stops responding after a period of time, IIS will kill it. This is really inconvenient when you’re debugging web apps in your dev environment, and IIS ends your session. You can disable this feature to allow a debugger to be attached indefinitely. Of course, you should never do this in non-development environments.

Just open up the app pool’s advanced settings and find Ping Enabled. Set it to false.

IIS App Pool Settings - Ping Enabled

Set Identity to ApplicationPoolIdentity

If you set the identity of an application pool to ApplicationPoolIdentity, the IIS worker processes in Task Manager will appear with the application pool’s name in the User Name column instead of a Windows user. In addition, if you also create an app pool for each web application, you can quickly identify which w3wp.exe process points to which web application.

IIS App Pool Settings - Application Pool Identity

For instance, if I’m debugging excessive memory use, I can see exactly which application is causing the issue. In this case, Berkley Concierge Se is the culprit.

Task Manager

© Joe Buschmann 2020