How to deploy an ASP.NET web site to Windows Azure!

Note I say web site – rather than web application.

If you have a web site, which is just a folder of files and stuff rather than a full blown VS project, you can easily deploy into Windows Azure without having to convert to a web app. (Of course you should really think about converting it because you get a better tool experience, debugging etc.)

I’m going to assume you have the Windows Azure SDK installed.

So the first thing is to get your files laid out on disk correctly. For our purposes I have a really simple web site containing a single default.aspx file. This is in a folder named ASPNetRole.


Next you need to create the cscfg and csdef files that Windows Azure requires to build a package. In the folder above I created the 2 files:


ServiceConfig.cscfg looks like this:

   1: <?xml version="1.0"?>

   2: <ServiceConfiguration serviceName="myaspapp" xmlns="">

   3:   <Role name="ASPNetRole">

   4:     <ConfigurationSettings/>

   5:     <Instances count="2" />

   6:   </Role>

   7: </ServiceConfiguration>

ServiceDefinition.csdef looks like this

   1: <?xml version="1.0" encoding="utf-8"?>

   2: <ServiceDefinition name="myaspapp" xmlns="">

   3:   <WebRole name="ASPNetRole" vmsize="Small">

   4:     <InputEndpoints>

   5:       <!-- Must use port 80 for http and port 443 for https when running in the cloud -->

   6:       <InputEndpoint name="HttpIn" protocol="http" port="80" />

   7:     </InputEndpoints>

   8:     <ConfigurationSettings/>

   9:   </WebRole>

  10: </ServiceDefinition>


Make sure the role names match what you want to call your role.

Now you have these 2 files you are all ready to go!

There are 3 tasks you may want to do.

1. Package the web site to run in the local developer fabric.

   1: "c:\Program Files\Windows Azure SDK\v1.2\bin\cspack.exe" "ServiceDefinition.csdef" /role:ASPNetRole;ASPNetRole; /copyOnly

2. Run the local developer fabric package:

   1: "C:\Program Files\Windows Azure SDK\v1.2\bin\csrun.exe" "ServiceDefinition.csx" "ServiceConfig.cscfg" /launchBrowser

3. Package ready to deploy to Windows Azure.

   1: "c:\Program Files\Windows Azure SDK\v1.2\bin\cspack.exe" "ServiceDefinition.csdef" /role:ASPNetRole;ASPNetRole;

When you run the last script it will generate the package you need to deploy to Windows Azure. I usually pop the above into 3 script files named prefabric.cmd, runfabric.cmd and buildpackage.cmd.

Have fun.