Microsoft.WindowsAzure.StorageClient is not actually on Azure
And neither is Microsoft.WindowsAzure.Diagnostics.
It’s ironic that the diagnosis of Windows Azure roles failing to start up is that the Diagnostics assembly isn’t present.
I’ve spent the better part of a day trying to figure out why things weren’t working. According to countless forum posts, blog articles and MSDN articles, the main reason that roles fail to fire up and end up cycling between initializing and busy is that there are dependent files missing. I assumed (wrongly) that the Microsoft.WindowsAzure.* assemblies would be present because… well… it’s Microsoft Windows Azure. I was wrong.
It kind of makes sense, because you might not want to use all features of Azure. But you have to forgive me for assuming they’d be there.
I figured it out by running Intellitrace on the instance. I could download the Intellitrace log and I could see that there was a nice big System.IO.FileNotFoundException. It couldn’t load Microsoft.Windows.StorageClient. I did a bit more research and eventually found out that you need to Copy Local that assembly, and Diagnostics, too.
A post from Think First, Code Later (site now offline), was the final bit of info that made everything else make sense!
This has been a big weekend for blog posts for me, hasn’t it?