Issues and Resolutions When Upgrading Sitecore from 7.0 to 7.2
September 8, 2014
I experienced a number of issues upgrading Sitecore 7.0 to 7.2. Thankfully Brian Pederson rocks and had already posted solutions to 2 of them.
System.Web.UI.HtmlControls.HtmlIframe and Sitecore 7.1
The Sitecore admin website refused to load after upgrading to Sitecore 7.1 and displayed the following error:
Parser Error Message: The base class includes the field ‘IFrame’, but its type (System.Web.UI.HtmlControls.HtmlIframe) is not compatible with the type of control (System.Web.UI.HtmlControls.HtmlGenericControl).
Brian Pederson's post on .Net 4.5 steered me in the right direction and for some reason the targetFramework in the web.config on this server was still set to 4.0. Changing it to 4.5 fixed the issue.
MultiMediaField and Sitecore 7.1
When MultiMediaField was enabled, I received the following error on all websites after upgrading to 7.1:
Method not found: 'System.String Sitecore.Data.Fields.ImageField.get_Src()'.
The temporary solution to this was to disable the MultiMediaField.config in /App_Config/Include. I haven't found a permanent solution, but it is not necessary for our websites and could be disabled without impact.
System.Web.Helpers and Sitecore 7.2 Initial Release
During the 7.2 upgrade, I received the following error:
Could not load file or assembly 'System.Web.Helpers, Version=126.96.36.199, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
This took some time to figure out and I was finally able to resolve it by rolling back to 7.1 and installing MVC 5 early with binding redirects.
Sitecore.Web.Authentication and Sitecore 7.2 Update 2
After making the final upgrade to Sitecore 7.2 Update 2, I was unable to login to Sitecore. Instead the following error was displayed:
[NullReferenceException: Object reference not set to an instance of an object.] Sitecore.Web.Authentication.<>c__DisplayClass5.<GetExistingTicket>b__2(Ticket ticket) +52 System.Linq.Enumerable.FirstOrDefault(IEnumerable`1 source, Func`2 predicate) +168 Sitecore.Web.Authentication.TicketManager.CreateTicket(String userName, String startUrl, Boolean persist) +75 Sitecore.Pipelines.LoggedIn.Ticket.Process(LoggedInArgs args) +58
Brian Pederson's post solved this issue, but make sure to restart your IIS site after deleting the entry from the database.