by Njål

Upgrading Umbraco from 4.5.1 to 4.5.2

Umbraco is a Content Management System (CMS) developed in Microsoft .NET.

Some of its advantages is that it offers full design freedom, it’s free to use, and perhaps most importantly – you can write your own user controls using the allmighty .NET Framework. A disadvantage with Umbraco (and a lof of other open-source solutions) is the hassle with upgrading to newer versions.

When attempting to upgrade a Umbraco 4.5.1 to 4.5.2 I followed this generic upgrade guide – which basically told me to overwrite some files and folder.The first thing I did was to do a full backup of the site (files + MS SQL database). Then, I copied the files, and opened the site in my browser.

A upgrade page was displayed – so far so good. I finished the different steps in the guide – it told me the upgrade had gone perfect!I tried to enter the site again to make sure the content was being displayed ok. But I was redirected to the Upgrade page again…where I tried to log in..

Problem: Admin can not log in after upgrading Umbraco
Possible Cause:  Earlier versions of Umbraco handled password in clear text, current version uses hashing.
Possible Solution: Open web.config file – remove the passwordFormat=”Hashed”

<add name=”UsersMembershipProvider” type=”umbraco.providers.UsersMembershipProvider” enablePasswordRetrieval=”false” enablePasswordReset=”false” requiresQuestionAndAnswer=”false” passwordFormat=”Hashed” />

Problem: Site is not displayed at all after upgrade
Possible Cause:  Upgrade bug?
Possible Solution: Log into Admin and republish entire site

Problem: XSLT is not working at all/behaving weird after upgrade
Possible Cause:  New XSLT Schema! Data elements with Alias Attributes are no longer used!
Possible Solution 1: Set <UseLegacyXmlSchema>true</UseLegacyXmlSchema> in config/umbracoSettings.config
Possible Solution 2 (better): Replace XSLT code looking like this
$currentPage/descendant-or-self::node[string(data[@alias='umbracoNaviHide']) != '1']
with this
$currentPage/descendant-or-self::*[umbracoNaviHide != '1']

If you are unsure what the data(document/node) that you are trying to process with XSLT looks like – then insert this:
<textbox><xsl:copy-of select=”$currentPage”/></textbox>

Problem: Umbraco installation contains different sites (hostnames), but only one of them works after upgrade
Possible Cause:  Wrong setting in config/umbraco.config which got owerwritten during upgrade
Possible Solution: Set <ensureUniqueNaming>True</ensureUniqueNaming> in config/umbracoSettings.config

Thats about it I think – good luck upgrading!