Even though Windows Azure released to the web on November 17, 2009 and became commercially available January 1st 2010. Receiving this ship it award last week, brought back lots of great memories. The moment of pride paid off for all the hard work to reach this great accomplishment. Kudos to the whole team.
Azure · gshahine · Guy Shahine
20
My take on Windows Azure at PDC09
No comments · Posted by Guy Shahine in PDC09, Windows Azure
PDC09 was the release to web event for Windows Azure. In this video, I’ve expressed how the technology is exciting, and how everybody is eager to learn more about it. Enjoy!
Azure · dev Team · PDC09 · SQL Azure · Windows Azure
18
Windows Azure: Why is my service not starting?
7 Comments · Posted by Guy Shahine in Windows Azure
Have you found yourself in a situation where your service goes from Initializing…Busy…Stopped…Initializing… when you deploy to Windows Azure? That’s when I value the “hint button” that pops up in some games after struggling to figure out how to go to the next level. Unfortunately, there is no hint button on the Windows Azure Portal, so this blog post will help you put a checklist of things to go over before you give up.
Possible Issues
Deploying With Local Service Configuration File
A typical mistake is to deploy your service with your local configuration file where usually the diagnostic store and/or other storage endpoints are pointing to the local development storage. To avoid this problem, always create separate configuration files, e.g. ServiceConfiguration-Local.cscfg, ServiceConfiguration-Staging.cscfg and ServiceConfiguration-Production.cscfg…etc
Wrong Service Configuration Settings
There is a range of wrong configuration settings which could cause your role to crash. I’ll enumerate the most common mistakes:
- Wrong storage name: You should be aware that the storage account name is not your LiveID alias. When you create a new storage account, you usually choose an account name and it’s displayed in the following fashion “http://[account-name].blob.core.windows.net”.
- Wrong storage account key: The storage account key is not your LiveID password. When you create a storage account, you should get two base-64 keys primary and secondary key.
- Regenerated account key: When you regenerate your primary and/or secondary key then the old key will become invalid.
- Unreachable endpoints: Many factors could cause your endpoints to be unreachable, for instance, power failure, network failure … etc (that’s another reason to move those services to Windows Azure
so you don’t suffer from downtimes ). When an endpoint is not reachable and your service is relying on it, then your service will crash.
Administrator Privileges Required
Today, Windows Azure doesn’t allow you to perform administrative actions within your role, so if your service requires:
- Installing some software
- Installing/Configuring a DCOM service
- Editing Registries
- …
Or anything that requires admin privilege then your role will crash and your service won’t start.
ATTENTION: When your service is running locally in Full Trust in DevFabric then administrative actions will work and they won’t crash your role. This is caused by the DevFabric running in administrator mode on your machine and the Windows Azure team hasn’t implemented yet a way to block those actions when running locally. So this will make it harder locally to identify that your service will not work when deployed to the cloud.
Full Trust vs Partial Trust
In Windows Azure you’re allowed to run your service in Full Trust or Partial Trust so if you set it to run in Partial Trust, then Full Trust assemblies will cause your service to crash.
ASP.NET Custom Error Page
By default, custom error pages are enabled when creating an new Windows Azure web role. The custom page is meant to hide the ugly crash details from the end-user (ugly to some people, very beautiful and informational to others
). It’s possible to turn off the custom error page in the project web.config, check out the documentation: http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx.
Windows Azure Web Role with Custom Error Page On:
Windows Azure Web Role with Custom Error Page Off:
Key Takeaways
The key takeaways from this post is to double check your application’s settings and to be aware of what’s not supported by Windows Azure before contacting the support team.
- Always make sure to run your service locally in the DevFabric, as it will identify many of the issues that might cause your service to crash when deployed to the cloud.
- Maintain separate service configuration files for each environment: Local, Staging, Production, … etc
- Make sure to keep your settings file up-to-date in case you renew storage keys or you rename resources (e.g. rename the queue instance that your service relies on)
- Make sure that other services that you rely on are up and running.
- Turn off ASP.NET custom error pages as you’ll get more details about the crash, which will allow you to get more traction on the areas to focus on to fix your service.
Good Luck!
1
Chat With DPE UK About Windows Azure Customer On-boarding
No comments · Posted by Guy Shahine in Windows Azure
How was PDC this year?
Last week (Nov. 17-19), Microsoft gathered around developers, architects, media, etc.. at the Convention Center in LA in an event called Professional Developer Conference (PDC09). Unlike previous years where Microsoft used to announce new products at PDC, this year was more focused on accomplishing the announcements that were made before, for example: the launch of Windows Azure and the launch of Windows 7, or what’s coming up in the next version of previously released Microsoft products, for example: Microsoft Visual Studio 2010, Microsoft Office 2010, Microsoft Internet Explorer 9, Microsoft Silverlight 4.
Who am I?
I’m a developer on the Windows Azure team and in the past year and a half, I was part of the on-boarding team where I work closely with developers that are building services on top of Windows Azure platform.
Windows Azure at PDC
The Windows Azure lounge was one of the busiest places for three consecutive days (there is a Lebanese saying: “The monkey is a gazelle in the eyes of his mother”, but I’m telling the truth here). Everyone seemed interested and people were lining up for three hours to get a spot for the hands on labs (alright, we were giving a flip camera for every attendee that finishes one lab exercise and one Windows Azure session, but the third day we ran out of cameras and the labs were still full). Oh, and did I mention the container? Windows Azure had a datacenter container on site. The container is a smaller version than the original ones but it was still very exciting to see one of them.
I was fortunate to be helping in the hands-on labs, where I had the chance to stumble upon people who were only interested in getting the camera instead of taking the opportunity to learn something. The best one was a lady in her 50s who waited in line for like two hours, and I was very happy to see a dedicated person that can’t wait to play with the labs (the thought of her waiting for a camera didn’t cross my mind for 2 seconds) until she made a typo while following the lab walkthrough and she called me to ask what does the underlying red zigzag means under her using statement and that her application is not running when hitting the “run” button. What did I do? Well, I gave her a stamp and sent her in piece for her little camera. The second best one was from a person with an eastern European accent, who skipped the 3 hours like and came directly to me: “Look, I am not a programmer and I don’t know how to write code, but I want the camera and there is no point for me to wait in line and reserve a station, so can you give me a stamp?”, I replied: “no”, He replied: “But why?”, I replied: “If you wait in line and your turn arrives I’ll personally give you a stamp without the need to finish the lab”, he ran away
.
Overall, the experience was awesome and the customers were very interested. Many of the attendees had very good questions and feedback, others were still interesting which led me to write this blog post
.

Guy Shahine
gshahine on