Modifying the VHD contents on Azure

network-drive-3Now that a new DNN upgrade package has been released, perhaps you are interested in how to modify your DNN instance to upgrade the contents to the latest release.

Some people are doing this work downloading the full VHD, updating it locally and the uploading it again to Azure Storage. I don’t use this method, but I’ll explain how to do it and how I do it.

Downloading, modifying, uploading

If you want to download the VHD and make the changes on your development environment, you will need a tool that can download/upload PAGE BLOBS.

Method 1: Use a graphical tool

Cerebrata is working on a specific tool for this task that is name Azure Page Blob Manager. You can check it here (is still in beta and you can download and use it)

Cerebrata Azure Page Blob Manager


As the name suggests, this utility is specifically designed to manage Windows Azure Page Blobs. At a very high level here is what you can do with this utility:

  • You can view the contents of a page blob mounted as an Azure Drive. This is probably the neatest feature of this utility. Basically this utility creates an empty VHD on your computer and then downloads the occupied pages of the page blob and then mounts the VHD on your computer as a drive so that you can see the files contained in the page blob.
  • You can upload VHDs in Windows Azure Blob storage as page blobs.
  • You can download page blobs.
  • You can view the total size of the page blob and also the space currently occupied by the page blob (which would tell you how much are you being charged for this particular page blob).
  • You can see how many pages in the page blob are occupied (blue boxes in the screenshot below). Each box below represents 1/400th of the total page blob size. Clicking on the blue box will tell you how many bytes are occupied.
  • This utility will list the page blobs only.


Method 2: use a command line tool

You can also download/upload the VHD using a command line tool like “AccelCon.exe” that was included in the original DNN Azure Accelerator package (developed by Slalom Consulting). This tool is not included on the latest build so you can download it from this link:


You can upload the VHD as a page blob using this command line syntax:

accelcon.exe /u /v «.DotNetNuke.vhd» «azure-accelerator-drives/dotnetnuke.vhd»


Method 3: Why to download the VHD?

If you enable RDP, you can copy/paste contents and many other things. When I need to upgrade the contents (i.e. when a new upgrade release is delivered), I usually:

  1. connect via RDP to one instance
  2. navigate to Codeplex and download the upgrade package (web navigation is enabled inside the roles)
  3. extract the update into the drive.

Modifying via RDP

I usually copy the contents to another folder (for backup purposes) and execute and create a copy of the database (T-SQL: create database … as copy of …), so I can repeat/regress the process quickly is something fails. I do all this work via RDP. In order to enable RDP, at this moment you need to recompile the package (see documentation), but I highly recommend it for this and other purposes.

Some new features will be announced respect to this on the next release of the DNN Azure Accelerator, so stay tuned 🙂


David Rodriguez, is a happy Spanish guy living and working in Tenerife (Canary Islands, Spain) where he was born. He is one of the lucky ones who has the opportunity to work with cutting edge technologies at Intelequia as CTO. He has more than 20 years development background mostly based on Microsoft technologies, designing and architecting highly scalable systems like reservation systems for airlines companies. He has been working with Microsoft Azure since it was on CTP, migrating on-premise systems to the cloud, co-founding the .NET User Group TenerifeDev as well as the CSV company Intelequia Software Solutions. He is also the author of different DNN-Azure open source projects available on GitHub such as caching providers, analytics and Azure Active Directory.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *