Per Hemmingson
Oct 1, 2008
(0 votes)

EPiServer CMS R2 Upgrade experience

Early this morning we took on the task of upgrading 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.



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



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


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
Caching & Rendering of metadata from the DAM

For the EPiServer.Cms.WelcomeIntegration.UI 1.2.0 release, we have facilitated the ability to cache and render metadata from assets within the DAM....

Matthew Slim | Jun 2, 2023

Conversion Rate Optimization: Maximizing ROI through Data-Driven Decisions

In today's digital landscape, businesses are constantly looking for ways to improve their online presence and drive more conversions. One effective...

JessWade | Jun 1, 2023

Enhance Your Writing with Suggestions

Are you tired of staring at a blank screen, struggling to find the right words? The Epicweb.Optimizely.AIAssistant Addon is here to revolutionize...

Luc Gosso (MVP) | May 31, 2023 | Syndicated blog

Content Graph - Letting GraphQL do all the hard work for you

Background As we have seen before, setting up Content Graph on the CMS side is pretty easy. However, when it comes to the “head” part of the setup,...

Kunal Shetye | May 26, 2023 | Syndicated blog