Installing Umbraco 4.5.2 on Windows 7

I was asked by a local business person whether I could help with their website but whilst being a competent .NET developer I have never used ASP.NET commercially.

The brief was based on some initial design documents they had paid a web designer for, but also to ensure the site was stylesheet driven and allowed the owner’s to maintain the content themselves. Some areas of functionality they were looking for beyond the typical business website were things like; eCommerce basket, blog, appointment booking, facebook and twitter integration, membership system and within this access to previous and future appointments and private records.

So, glossing over the rest of my research I found Umbraco (4.5.2 at the time) which seems to offer a good framework for what I needed, was a CMS (Content Management System) and so would allow maintenance by the owner and whilst there wasn’t a full library of components many people had already done what I wanted to do, the forums seemed very helpful and it was full ASP.NET based and so any ASP.NET component could be seamlessly integrated.

One route was to use the Web Installer but this wants to install SQL 2008 Express R2, which I am quite happy with but I had SQL 2005 already installed on my development system and did not want to also have 2008 on it. So, as I couldn’t use the Web Installer I was faced with a manual installation.

I download the latest version (4.5.2) from codeplex (http://umbraco.codeplex.com/releases) in .NET 4.0 flavour (3.5 was also availble) and then proceeded to install it. Here I started to struggle, probably due to my unfamilliarity with using ASP.NET, but it is at this point I decided to start documenting my experience as I didn’t seem to be alone in this situation.

Create a Windows Account to run the website under.I did this via right-click within file explorer on Computer, Manage and then under Local Users and Group created a User called umbraco45.

In IIS, create a new Application Pool running in .NET 4.0 with an Identity of the above Windows Account.I created an Application Pool called umbraco45, selecting the Windows Account I created above as the xustom account to run under.

Right click on downloaded zip file and click the ‘Unblock’ button.

Unzip and place the contents under C:\inetpub\wwwroot.When I did this, the contents of the zip were in a root folder called build. I renamed this folder to umbraco45 and so in my case I ended up with C:\inetpub\wwwroot\unbraco45.

In IIS, right click on the folder copied there earlier and click Convert to Application and set the Application Pool to the one created above.

In SQL Server create a SQL Login (under Security), using SQL Server autentication.In my case I called this umbraco45. Ideally I would have used Windows Authentiation, but the Umbraco installer only seems to work with SQL Server authetication. At this point you may need to turn ‘Mixed Mode Authentication’ on within SQL Server.

Regarding using Windows Authentication – I will revist this after installation.

Create a new database.In my case I called this umbraco, using the default settings.

Create a User within the above new database and map this to the above Login and set the Roles to; datareader, datawriter, ddladmin.Again, in my case I created a User called umbraco45.

At this point you should be able to run the installer, however it will fail for two reasons; file access security and ASP.NET timeout.During installation the web.config needs to be updated and various components are downloaded into the file structure below c:\inetpub\wwwroot\umbraco45, so we must amend the file permissions.In IIS, right-click on the umbraco website (umbraco45 in my case) and select Edit Permissions. On the security tab click Edit in the top part and add the Windows Account we created earlier (in my case umbraco45). By default this account gets “Read & execute”, “List folder contents” and “read” permission. Also check the “Write” permission.

When the installer nears the end it downloads and installs several components – assuming you select Runway example and some components. This takes too long and times out so to extend the timeout period edit the web.config file.

In my web.config file there is an element like this:

<httpRuntime requestValidationMode=”2.0″ />

Edit this to look like this (adding attributes maxRequestLength and executionTimeout):

Run the installer by right-clicking in IIS on the umbraco website and selecting Manage Application | Browse…In most cases you just select next, but on the database page remember to enter the appropriate details.In my case I am not using a DB Instance and soI changed “.\SQLEXPRESS” to just “.” and the database name and user were both umbraco45.After this the page requesting to install a foundation (Runway) allows you to select other components. I selected all the recommended ones, plus XSLT search and sitemap.

It is this stage that takes a very long time…so long you think it has hanged. It does work if you leave it long enough, about 10 minutes in my case.

Installation should now be complete. You can now remove the above file permissions entirely (not just the write but the entire User permission) and the extended timeout settings. You will need to put these back is you wasnt to download any new components.

I shall write again about my learning experiences of trying to use Umbraco.