The other day I came across an issue where an ASP.NET site stopped responding and didn't start serving requests again until the W3WP.exe process was restarted.
We grabbed some memory dumps with debug diag before restarting the process to see what was going on.
Debugging the dumps:
I opened the dump in windbg, and loaded up sos (.loadby sos mscorwks).
As with all hang dumps I usually check what the threads are doing (~* kb) and I found that one thread (10) was initiating a garbage collection.
0:010> kb ChildEBP RetAddr Args to Child 01cceeb4 7c827d0b 77e61d1e 00000280 00000000 ntdll!KiFastSystemCallRet 01cceeb8 77e61d1e 00000280 00000000 01cceefc ntdll!NtWaitForSingleObject+0xc 01ccef28 79e718fd 00000280 000000fa 00000000 kernel32!WaitForSingleObjectEx+0xac 01ccef6c 79e718c6 00000280 000000fa 00000000 m ...
Go to the complete details ...