Per Hemmingson
Oct 1, 2008
  15203
(0 votes)

EPiServer CMS R2 Upgrade experience

Early this morning we took on the task of upgrading http://world.episerver.com to latest release of EPiServer CMS R2, with the motto that we should run our own web sites on the latest release of EPiServer CMS. Usually people in the community wait untill the first Hotfix or Service Pack is relased before considering an upgrade, I like that strategy too.
But I'm damned if I do and doesn't get paid if I don't... :-)

Joking aside, I thought I share some experiences. There are several breaking changes, and this time it breaks! From breaking changes document:

  • DataFactory.GetPage method does no longer give an Unauthorized Exception when loading an page that the current user does not have access to.
  • EPiServer.Core.IPageStore has been removed.
  • EPiServer.DataFactory no longer implement EPiServer.Core.IPageStore, EPiServer.Core.IPageStoreStatistics.

A long story short; You have a problem if you are using EPiServer.Security.AccessLevel in your GetPage() methods. For example DataFactory.Instance.GetPage(blogStart.ParentLink, AccessLevel.NoAccess);
This will give a "method not found exception". So before doing the actual upgrade you need a plan.

 

Test

Plan for worst case scenario and how to deal with it. If there is an error in the upgrade process make sure you can rollback, Don't put all eggs in one basket.

Be prepared is the road to sucess, and test is the key. Have as identical copy as possible of your live web site. Install the new Installation manager and do a test upgrade. Usually the upgrade is done in 5 sec without problem.

Create a checklist

I made a small checklist with all the major components that we have at the episerverworld web site,

  • Forum (original from demo templates, then customized by Research)
  • Blog (from demo templates)
  • download,
  • Developer support form and webservices,
  • CRM connector
  • Custom Scheduled jobs
  • Buglist
  • External modules
  • etc.

Then test the functionallity of your web site and check of that your components work.
We had to recompile Blog and Forum eventhandlers, blog syndication scheduled job among other things due to the breaking change in IPageStore.GetPage().
There were a few external modules from EPiMore Partners that we had to remove untill they are R2 compatible. We also use EPiServer.Blog.dll from the demo templates which is not yet R2 ready. It will be released soon as I wrote in the developer forum, however I'm fortune to have access to the source code so in this case I could just check out and recompile needed assemblies.

 

The actual upgrade

I usually do not like reading documents like installation instructions, system requirements and breaking changes. I think I'll manage anyway, well this morning I was doomed.

First of, you need .net 3.5 SP1 for the new manager to install. That will take about 10 minutes. A nice coffee break.
Then you can install the manager. I choosed to install the necessary application files and then restart the server (I had too).

Finally now to upgrade. Start up the manager click upgrade from SP2 to R2 (where is sp3?). Found the bug "#14916 Cannot upgrade when site is installed in different volume than the installation manager".
Meaning, the website must be in the same volume as the manager. Also you cannot choose in which volume to install the manager, it will take the "program files" path.
Solution, Install a new SP2 site with the old manager in same volume, copy over our sitefiles and hook up the database. Then upgrade. ->Success! :-)

Post upgrade items

Open your checklist and test everything again.
Check that your scheduled jobs are working. Since the services were moved and reinstalled.
If you have custom things in Util or UI folder make sure they are at the new place (Virtual path folder, e.g. C:\Program Files\EPiServer\CMS\5.2.375.7\application\UI).

If you want you can clean up your bin folder from obsolete episerver assemblis as well the redirects in web.config

  • EPiServer.WebParts.dll
  • EPiServer.Workflows.UI.dll
  • EPiServer.ContentChannelService.dll
  • EPiServer.SchedulerSvc

 

Conclusion

Despite the breaking changes the development team has done a great job with this release and the new installer. There are several benefits of upgrading your site to the second editon of EPiServer CMS 5. New functionallity described in articles by Roger Wirz and Lena Spegel, as well as several blog posts on the subject.

Just don't take the upgrade lightly, its more work and changes than upgrading between service packs.

Oct 01, 2008

Comments

Sep 21, 2010 10:32 AM

Just want to add that as Web master of the site, I have the feeling when I am working in the Edit and Admin Mode, that it's even faster than when runned at EPiServer CMS 5 R1 :-)

Sep 21, 2010 10:32 AM

Great post. Thanks Per.

Sep 21, 2010 10:32 AM

Thanks Per, found som more pre R2 assembly redirects in the web.config: - EPiServer.Scheduler.WKTL - EPiServer.LogService - EPiServer.IndexingService - ElektroPost.Win32 I guess they can be safely removed as well? /René

Sep 21, 2010 10:32 AM

Please call me René

Per Hemmingson
Per Hemmingson Sep 21, 2010 10:32 AM

Hi there, EPiServer.Scheduler.WKTL shall stay. The rest can be removed.

Sep 21, 2010 10:32 AM

First upgrade to 5.1 sp 3 with the old manager(This may require to uninstall some services. I got an error about this. Solved by uninstalling the new manager, upgrade and reinstall the new manager) Take backup of files and database at this step to be sure... Install the new episerver manager if you haven't upgrade (I got an error about an index in the database that needed to be removed. Index was probably some developer error. This aborted the database upgrade while the files had been upgraded. Had to copy files from last step to be able to remove index and redo) recompile solution (I got some urlrewriteprovider error before recompile) Small codechange for xform that needed to be fixed (pageId no longer supported for this object...changed to pageguid) Voila! New version installed... Please fix that service error and also that files are rolled back if database upgrade fails...
/ Daniel

Jørgen Helgheim
Jørgen Helgheim Sep 21, 2010 10:32 AM

Great post! I have an addition: The full list of obsolete episerver assemblies are: bin/ElektroPost.Win32.dll bin/EPiServer.ContentChannelService.dll bin/EPiServer.IndexingService.exe bin/EPiServer.LogService.exe bin/EPiServer.SchedulerSvc.exe bin/EPiServer.WebParts.dll bin/EPiServer.WorkflowFoundation.UI.dll Delete corresponding assembly bindings in web.config. You can also delete the files: bin/EPiServer.IndexingService.exe.config bin/EPiServer.LogService.exe.config

Mahesh Mohan
Mahesh Mohan May 19, 2011 09:59 AM

Hi .. after recompiling i came accross an error saying Field not found: 'EPiServer.Global.UrlRewriteProvider'.
Please could somebody help me in resolving this error.

Please login to comment.
Latest blogs
Increase timeout for long running SQL queries using SQL addon

Learn how to increase the timeout for long running SQL queries using the SQL addon.

Tomas Hensrud Gulla | Dec 20, 2024 | Syndicated blog

Overriding the help text for the Name property in Optimizely CMS

I recently received a question about how to override the Help text for the built-in Name property in Optimizely CMS, so I decided to document my...

Tomas Hensrud Gulla | Dec 20, 2024 | Syndicated blog

Resize Images on the Fly with Optimizely DXP's New CDN Feature

With the latest release, you can now resize images on demand using the Content Delivery Network (CDN). This means no more storing multiple versions...

Satata Satez | Dec 19, 2024

Simplify Optimizely CMS Configuration with JSON Schema

Optimizely CMS is a powerful and versatile platform for content management, offering extensive configuration options that allow developers to...

Hieu Nguyen | Dec 19, 2024