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.
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)
- Developer support form and webservices,
- CRM connector
- Custom Scheduled jobs
- External modules
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
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
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.