If you see web roles or worker roles are going back and forth between initializing-busy-stopping, the first thing you should check is the copy local attribute of the assemblies.
All assemblies that aren’t part of .NET framework have to be set as Copy Local=True so that they would be included in your deployment package. Otherwise they aren’t deployed to Azure ending up the problem above. I’m making this mistake just about every day :-)
Next thing you may want to check is the connection strings in your service configuration. Make sure it points to Azure Storage instead of UseDevelopmentStorage=true.
If these settings are correct and you still have the deployment issue, most likely there’s some problems in role initialization such as WebRole.OnStart(), WorkerRole.Run() etc. Those problems include access to Azure Storage in a wrong manner such as obsolete schema, accessing queue which doesn’t exist and the list goes on.