Tess is a PSS escalation engineer for Microsoft and she has a really priceless set of blog posts on using some of the more advanced debugging tools that ship with .NET to better understand what is happening when things go wrong on the server (memory leaks, deadlocks, crashes, etc), identify root causes of issues in apps, and how to fix things.
Here are a few of the great posts she has done recently:
- .NET Memory: My Object is not rooted, what wasn't it garbage collected
- ASP.NET Memory Leak Case Study: Sessions, Sessions, Sessions
- ASP.NET Memory: How much are you caching?
- .NET Memory Leak Case Study: The Event Handlers that Made the Memory Balloon
- Back to Basics: How do I get a memory dump in the first place? And what is sos.dll?
- A Hang Scenarios, Locks and Critical Sections
- Things to Ignore when debugging an ASP.NET hang
- Why do I get weird symbols on my stack? (a discussion on symbols)
- Associate windbg with .dmp files
- Are you aware that you have thrown over 40,000 exceptions in the last hour?
- What on earth caused by process to crash?
- !dumpheap -stat explained (debugging .net leaks)
- I have a memory leak!!! What do I do? (defining the "where")
- Who is this OutofMemory guy and why does he make my process crash when I have plenty of memory left?
- Why I love the debugger
I really want to thank the awesome PSS team we have all around the world that support ASP.NET and .NET. As you can tell from the above articles, they have an absolute ton of knowledge, and need the skills to help diagnose and fix what is going on in a remote process full of customer app-code they've never seen.
Julia Lerman recently posted a nice blog entry about her first Microsoft PSS support call experience (on a holiday) that is worth reading if you have never called before. They can be a real lifesaver if you ever get stuck or are having a problem that you just can't figure out on a deadline.
Hope this helps,