When you are working on a large system, where your code base (project or solution) is only a subset of the entire system you will often use “Attach to process…” to tap into the execution of the application pool for debugging.
“Attach to process…” might not the most convenient approach for debugging, however at times it can be more efficient than launching whole application from your code base. There are still value in using “Attach to process…” although this approach could be painful occasionally.
Here are a few tricks to make the debugging process less painful.
Trick No.1 – Identify your AppPool
When you are working with a little more complex application where your application have dependencies on other applications, you might have multiple w3wp.exe running like following:
Which process should you attach to?
All of them? Of course that would work but obviously that’s not the kindest thing you can do to the poor machine memory and CPU…
The following command help you identify the AppPool name and the process ID so that your Visual Studio will only attach to the relevant w3wp.exe
C:\Windows\System32\inetsrv>appcmd list wp
Base on the AppPool name, you can now know the process ID you should attach to in your Visual Studio.
Trick No.2 – ReAttach (Visual Studio extension)
Imagine you have to use “Attach to process…” for debugging purpose in your project. You modify your code a little to change the logic or add some validation and want to continue debugging. It is annoying to keep launching the above “Attach to Process” dialog to select the w3wp.exe.
ReAttach is a Visual Studio extension to help you to attach to the process ID that you have attached a moment ago.
Download and install it then you will have a new option in your Visual Studio menu, Reattach to Process… instead of just “Attach to Process…”
The extension basically helps you to reattach your debugging to the process that you attached earlier. It will continue to work as long as your process ID did not change / disappear.
If for whatever reason you need to run iisreset and your process ID changed. By using “Reattach to process…” it will help filtering out all other irrelevant process and only show you the available w3wp.exe
Hope these 2 tricks help your debugging by attaching to your AppPool. Until next time!