Latest Azure Guest OS

Family IsDefault Version
3 False WA-GUEST-OS-3.21_201411-01
3 False WA-GUEST-OS-3.22_201412-01
3 True WA-GUEST-OS-3.23_201501-01
4 False WA-GUEST-OS-4.14_201411-01
4 False WA-GUEST-OS-4.15_201412-01
4 True WA-GUEST-OS-4.16_201501-01

Here is the latest guest os details.

Migrating Azure 2.2 to Azure 2.3 emulator

This is an article on how to migrate the azure emulator from v2.2 to v2.3

Note that the emulator has changed again by the time you get to v2.5.

Given that the emulator is a poor copy of what really happens in azure I would recommend designing you apps to work locally standalone yet use services in the cloud (with abstracted local versions if required).

Latest Azure Guest OS Updates

At last we have the December Update and it is now the 16th January.



Is Default

3 WA-GUEST-OS-3.20_201410-01 False
3 WA-GUEST-OS-3.21_201411-01 False
3 WA-GUEST-OS-3.22_201412-01 True
4 WA-GUEST-OS-4.13_201410-01 False
4 WA-GUEST-OS-4.14_201411-01 False
4 WA-GUEST-OS-4.15_201412-01 True

Please can we have a little more frequency in updates.

This gives some updates.

Latest Azure Guest OS

As of the end of 2014 we have:

Family IsDefault Version
3 False WA-GUEST-OS-3.17_201407-01
3 False WA-GUEST-OS-3.20_201410-01
3 True WA-GUEST-OS-3.21_201411-01
4 False WA-GUEST-OS-4.10_201407-01
4 False WA-GUEST-OS-4.13_201410-01
4 True WA-GUEST-OS-4.14_201411-01

According to the documentation site (  the latest versions are due to expire on the 11th of January with the new versions being enabled on the 5th January. I guess that means a lot of people will have to spend their first week back at work testing the new os release in the 5 working days before the existing guest oses are retired.

Updated Azure Guest OS List

Azure Guest OS List

Family IsDefault Version
1 False WA-GUEST-OS-1.37_201407-01
1 False WA-GUEST-OS-1.40_201410-01
1 True WA-GUEST-OS-1.41_201411-01
2 False WA-GUEST-OS-2.29_201407-01
2 False WA-GUEST-OS-2.32_201410-01
2 True WA-GUEST-OS-2.33_201411-01
3 False WA-GUEST-OS-3.17_201407-01
3 False WA-GUEST-OS-3.20_201410-01
3 True WA-GUEST-OS-3.21_201411-01
4 False WA-GUEST-OS-4.10_201407-01
4 False WA-GUEST-OS-4.13_201410-01
4 True WA-GUEST-OS-4.14_201411-01

The official update is a month old.

Some of the expiry dates are getting stale – it claims that items that are still active are already retired.

It should be updated weekly.

According to the source the most recent oses will become unavailable on the 11th January 2015.

This is great – straight back after new year on the 6th January and we will have less than a week to get the next os ready.

Azure Guest OS Updated at Last

The following is the current active Azure Guest OS Version as at 16:40 gmt 1st November 2014

Family IsActive IsDefault Version
1 True False WA-GUEST-OS-1.36_201406-01
1 True False WA-GUEST-OS-1.37_201407-01
1 True True WA-GUEST-OS-1.40_201410-01
2 True False WA-GUEST-OS-2.26_201404-01
2 True False WA-GUEST-OS-2.28_201406-01
2 True False WA-GUEST-OS-2.29_201407-01
2 True True WA-GUEST-OS-2.32_201410-01
3 True False WA-GUEST-OS-3.16_201406-01
3 True False WA-GUEST-OS-3.17_201407-01
3 True True WA-GUEST-OS-3.20_201410-01
4 True False WA-GUEST-OS-4.10_201407-01
4 True True WA-GUEST-OS-4.13_201410-01
4 True False WA-GUEST-OS-4.9_201406-01

It can be assumed that the current N-1 will be disabled on the 1st December 2014 according to

This does mean that we currently have three available OS version rather than the normal two.

The Azure team do not seem to understand that peak uses of cloud software are likely to be at weekends and overnight.

Cloud environments at large scale ups are likely to be entertainment or advertising based which spike when consumers are at home.

The best time to patch a cloud platform is 8 am GMT on a tuesday morning, preferably after informing your customers that you are going to do so at least a week in adavnce.

I am going to post an update of this whenever I notice a change in the deployed environments.

Azure Guest OS – We Need Accurate Documentation

I am not sure what is currently going on with the Azure Guest OS Availability.

Currently 3.17 is the default active one, and 3.16 is the non-default inactive one.

There are however two versions of each of 3.18 and 3.19 waiting in an inactive state.

The only source of dates for the expiry of these is:

3.16 is listed as expiring yesterday (Oct 10 2014) and 3.17 is due to expire on monday (Oct 13 2014).

3.18 has already expired and 3.19 has a TBD release date.

Given that I work with a product that we like to test on an os before we actually deploy it we are in a rather difficult position. We can deploy what we have to test but will at some undefined point we will need to move to the newly released versions and retest them.

This is not a very satisfactory poisition to be in.

Adding EventIds when logging to WADLogs

This is a great article on how to include an event id in the WADLogs table.

The trick is to use a custom trace source as follows

TraceSource ts = new TraceSource(“My Custom Event Source Name”, SourceLevels.Information);

ts.TraceEvent(TraceEventType.Warning, 102, “This is a test log using trace source”);

and then to configure the azure listener to get this into the appropriate log file:

This gets added to the appropriate system.diagonstics section:


<source name=”MyTraceSource” switchName=”sourceSwitch” switchType=”System.Diagnostics.SourceSwitch”>


<add type=”Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ name=”AzureDiagnostics”>

<filter type=”” />






<add name=”sourceSwitch” value=”Warning”/>


The big advantage of this is that you get to assign your own error codes to the messages.

Practically all of the default Azure stuff will be coded as zero.

This means that you can assign defined ranges of code to indicate that these are for example:

Timing Messages.

Notification for information.

Notification for action.

These make analysing the logs much easier.

Btw are you aware of the WADLogs powershell trick:

“0” + [DateTime]::UtcNow.AddHours(-1).Ticks

This gives a partition key of an hour ago.

This is great for getting extracted logs.

Extract the logs into csv and use the powershell import-csv command.

This is an amazingly fast way of analysing logs.