A large chunk of my past seven days has been spent on doing all I can to ensure that IIS7 reaches its first major milestone enroute to shipping in Longhorn Server (or whatever it will be called - Vista Server? Nah. ;-) ).

Several of us easily put in personal 100 hour week to get it done (yeah, I know it does not measure up to the crazy hours at a startup, but hey, please just sympathesize with me for a moment here, ok? Good. ;-) ), and I cannot remember the number of times that I saw 5am, going to sleep in the morning sunlight, only to wake up before lunch, the number of Red Bull drinks consumed, and the number of times I ran and debugged IIS7 and tests on x64 machines. But, the job got done.

Debugging on Longhorn

And let me just say that debugging system services (like IIS) on Longhorn is a pain. I understand the security justifications, but I am not going to stop griping. And no, it is NOT much different than native code debugging on IIS6, IIS5, or IIS4 -- the EXACT same strategy and debugging environment works for all of them. So, if you really understood the debugging principles, not just some debugging step-by-step instructions in a KB article or help/guide, you should be fine. I plan to do a brain dump on this topic in a future blog entry, so you do not need to fret.

I can just say that you will not be able to use Visual Studio to interactively debug a running IIS7 system. Tools like DebugDiag/IIS State, stand-alone debugging of w3wp.exe using Visual Studio, and debug client/server options in WINDBG, NTSD, and CDB from the Windows Debugging Toolkit are your only options. In other words, for developers on the IIS product team, nothing really changed.

Actually, I do not think this change is traumatic. The eye-candy may have changed, but the basics stayed the same. So, I cannot emphasize enough on understanding the fundamentals, the basics, of debugging. The benefits will last a long, long time.

Maiden Voyage, x64

All I can say is that yesterday afternoon, when the first installable x64 Longhorn Server build cleanly passed all of our BVT tests (simple tests used to validate basic build quality) the FIRST time we put it all together... that was an amazing feeling. A LOT of hard work went into making that moment smoothly happen.

I was obviously holding my breath as I watched my automation scripts pick up and kick off the first installable x64 Longhorn Server Build, which went through the full IIS7 componentized setup without any errors (knock on wood), and then watched it establish the uniform test environment and kick off our BVT tests, several of which I had debugged 36 hours earlier to flush out all the x64-related issues that were all quickly fixed by the dev team... and then 40 minutes later emerged with a clean bill of health on the BVTs.

Honestly, I still cannot believe how smoothly it all went. I knew that I iterated and worked on all the individual parts to make them work, but you know Murphy's Law, you always expect something to be missing or go wrong...

But, now that the milestone is out of all our hands, I can finally relax a little and get back to "the usual". :-) I have a longer queue of Q&A that people have posted to me the past week; it will take me some time to get answers posted, considering I have many other things to catch up on. Bear with me for a while.

Oh, yeah, and do NOT ask me about the number of "TPS Reports" that I had to write the past week. I never quite seem to remember the cover sheet. ;-)