This post more accurately should’ve been called "how NOT to migrate to IIS 7". To migrate from IIS 6 to IIS 7 on GoDaddy all you need is to push "upgrade to IIS 7" button in the control panel. Sweet, right? Actually, this is the last thing you want to do. Because once you done it, your site goes down right away and your new shiny IIS 7 site will come up in... well, not sure yet. In my case, it is 5 days and counting.
It seems to be a pattern with GoDaddy: when it works it works great. My site was up for over a year with no downtime whatsoever. But once you run into issue and have to go for tech support, all hell breaks loose. It is probably true with most hosts, so I'm not going to complain all that much, just trying to prevent others from doing same stupid mistakes I've done. In my defense, I was not planning on this move. It all started with nasty error caused by corrupted resource file. Usually, easiest fix for these kind of issues to simply purge temporary asp.net files in the framework's directory, but convince support to do it on shared hosting is not that easy at all. This is why I pushed the damn button - I just figured that I'm already screwed anyways, so why not take an advantage and do migration to better server? It probably will take same time for support as to fix corrupted DLL. How little I knew...
Below is what I should’ve done, and it all related to causal blogger. If you have hundreds of thousands subscribers… well, you probably have someone else to worry about technicalities.
Try before you buy
First, set IIS 7 locally and make sure your app[s] work well or can be adjusted to work well with IIS 7. Most will do, but there are few differences that can cause a problem, so you need to evaluate migration before it is too late. With GoDaddy, they won't downgrade back to IIS 6 once you moved forward (?!?).
Back up your stuff
In case you don't do regular backups (which you obviously should) - do it know
Set up temporary site
Get your backed up site up and running on any public server. You can get free limited account with other (or same) host, use free trial option or even use your home web server if you have one. You don't need to transfer a domain name, something like "me.freehosting.com/blog" assign to you by free host will do fine.
Now you need to redirect all calls from your blog to this temporary site we just set up. It is easy done by going to "manage domain" and specifying where you want user landed when he try to navigate to your IIS 6 site. If this all works fine and traffic safely redirected to temporary safe harbor - then and only then you can go ahead and request to upgrade to IIS 7. This way, it is not matter much how long it will take for GoDaddy to get migration through, most of the users won't even notice that URLs on your site for a while looked a little weird.
If you follow these simple steps, it will save you a lot of frustration. This tactic should work with most hosting environments in similar situations. After migration to IIS 7 completed and tested, you simply remove redirection and things go back to normal.
All I need now is to figure out do I really need GoDaddy to run my site. Oh, and if you’ll see something funny with this site in the next few days, now you know why ;)