Describes experience of upgrading on-premise intranet and extranet sites from Sharepoint 2010 to Sharepoint 2013, including found problems and solutions for them.
2. 1. Create SP2013 farm
2. Copy databases to new farm
3. Upgrade service apps
4. Upgrade content databases
5. Upgrade site collections
3. Plan 1.
2-3 iterations
1. SP 2013 farm
setup
2. Transfer
customizations
(SP 2010 mode)
3. Upgrade
content dbs and
service apps
4. Test site
collections in SP
2010 mode
6. Install updated
customizations
(SP 2013 mode)
7. Upgrade site
collections to
2013 mode
8. Test site
collections in SP
2013 mode
5. Update custom
solutions for SP
2013
Plan 2. 2-3 iterations
1. SP 2013 farm
setup
3. Transfer
customizations
(both SP 2010
and 2013 mode)
4. Upgrade
content dbs and
service apps
5. Upgrade site
collections to
2013 mode
6. Test site
collections in SP
2013 mode
2. Update custom
solutions for SP
2013
Actual plan.
1. SP 2013 farm
setup
3. Transfer
customizations
(SP 2010 mode)
2. Upgrade
service apps
databases
5. Test site
collections in SP
2010 mode
7. Install updated
customizations
(SP 2013 mode)
8. Upgrade site
collections to
2013 mode
9. Test site
collections in SP
2013 mode
6. Update custom
solutions for SP
2013
4. Upgrade
content
databases
4. 2 service apps:
Managed metadata service application
Search service application
Managed metadata is upgraded by powershell:
Search service application is created from scratch and content is recrawled
1. SP 2013 farm
setup
3. Transfer
customizations
(SP 2010 mode)
2. Upgrade
service apps
databases
5. Test site
collections in SP
2010 mode
7. Install updated
customizations
(SP 2013 mode)
8. Upgrade site
collections to
2013 mode
9. Test site
collections in SP
2013 mode
6. Update custom
solutions for SP
2013
4. Upgrade
content
databases
$MMSServiceInstance = get-spserviceinstance | ? {$_.Typename -eq "Managed Metadata Web Service"}
Start-SPServiceInstance $MMSServiceInstance
$MMSServiceApp = New-SPMetadataServiceApplication -ApplicationPool "AppPool" -Name "Managed Metadata Service" -
DatabaseName "Managed_Metadata_Database"
$MMServiceAppProxy = New-SPMetadataServiceApplicationProxy -name "Managed Metadata Service Proxy" -
ServiceApplication $MMSServiceApp
5. Create web applications with the same host headers
(claims authentication)
Deploy wsp packages for SP2010 on SP2013 farm as is
(to 14 hive):
Install-SPSolution -Identity MyPackage.wsp -CompatibilityLevel 14 –GACDeployment
1. SP 2013 farm
setup
3. Transfer
customizations
(SP 2010 mode)
2. Upgrade
service apps
databases
5. Test site
collections in SP
2010 mode
7. Install updated
customizations
(SP 2013 mode)
8. Upgrade site
collections to
2013 mode
9. Test site
collections in SP
2013 mode
6. Update custom
solutions for SP
2013
4. Upgrade
content
databases
6. Error from Test-SPContentDatabase:
Mount-SPContentDatabase didn‟t work
1. SP 2013 farm
setup
3. Transfer
customizations
(SP 2010 mode)
2. Upgrade
service apps
databases
5. Test site
collections in SP
2010 mode
7. Install updated
customizations
(SP 2013 mode)
8. Upgrade site
collections to
2013 mode
9. Test site
collections in SP
2013 mode
6. Update custom
solutions for SP
2013
4. Upgrade
content
databases
Category Configuration
Error False
UpgradeBlocking False
Message The [example.com] web application is configured with claims authentication
mode however the content database you are trying to attach is intended to be
used against a windows classic authentication mode.
Remedy There is an inconsistency between the authentication mode of target web
application and the source web application. Ensure that the authentication
mode setting in upgraded web application is the same as what you had in
previous SharePoint 2010 web application. Refer to the link
"http://go.microsoft.com/fwlink/?LinkId=236865" for more information.
Locations
7. Recreated web app with Windows authentication
Error from Test-SPContentDatabase:
Mount-SPContentDatabase works, but we changed authentication type
from Windows to Claims via powershell
1. SP 2013 farm
setup
3. Transfer
customizations
(SP 2010 mode)
2. Upgrade
service apps
databases
5. Test site
collections in SP
2010 mode
7. Install updated
customizations
(SP 2013 mode)
8. Upgrade site
collections to
2013 mode
9. Test site
collections in SP
2013 mode
6. Update custom
solutions for SP
2013
4. Upgrade
content
databases
Category Configuration
Error False
UpgradeBlocking False
Message The [example.com] web application is configured with windows classic
authentication mode however the content database you are trying to attach is
intended to be used against a claims authentication mode.
Remedy There is an inconsistency between the authentication mode of target web
application and the source web application. Ensure that the authentication mode
setting in upgraded web application is the same as what you had in previous
SharePoint 2010 web application. Refer to the link
"http://go.microsoft.com/fwlink/?LinkId=236865" for more information.
Locations
8. Ribbon was totally broken
Publishing pages in edit mode were broken
Reimplemented custom master pages using
OTB Sharepoint 2013 master page as base
1. SP 2013 farm
setup
3. Transfer
customizations
(SP 2010 mode)
2. Upgrade
service apps
databases
5. Test site
collections in SP
2010 mode
7. Install updated
customizations
(SP 2013 mode)
8. Upgrade site
collections to
2013 mode
9. Test site
collections in SP
2013 mode
6. Update custom
solutions for SP
2013
4. Upgrade
content
databases
9. 1. SP 2013 farm
setup
3. Transfer
customizations
(SP 2010 mode)
2. Upgrade
service apps
databases
5. Test site
collections in SP
2010 mode
7. Install updated
customizations
(SP 2013 mode)
8. Upgrade site
collections to
2013 mode
9. Test site
collections in SP
2013 mode
6. Update custom
solutions for SP
2013
4. Upgrade
content
databases
10. Created new empty Sharepoint 2013 project and copied artifacts
one by one
Used the same solution ids for wsps
Compared content of wsp packages after upgrade was done
Simple way:
edit .csproj file in the notepad and replace value for TargetFrameworkVersion
tag from v3.5 to v4.5
then go to Package subfolder in your project folder and edit Package.package
file: add attribute sharePointProductVersion="15.0" after existing
resetWebServer attribute.
1. SP 2013 farm
setup
3. Transfer
customizations
(SP 2010 mode)
2. Upgrade
service apps
databases
5. Test site
collections in SP
2010 mode
7. Install updated
customizations
(SP 2013 mode)
8. Upgrade site
collections to
2013 mode
9. Test site
collections in SP
2013 mode
6. Update custom
solutions for SP
2013
4. Upgrade
content
databases
11. Run health check from Site settings: a lot of files were shown as
customized. Uncustomize them via powershell (SPFile.
RevertContentStream())
Retract 2010 wsps from 14 hive
Deploy 2013 wsps to only 15 hive:
Install-SPSolution -Identity MyPackage.wsp -CompatibilityLevel 15 –GACDeployment
1. SP 2013 farm
setup
3. Transfer
customizations
(SP 2010 mode)
2. Upgrade
service apps
databases
5. Test site
collections in SP
2010 mode
7. Install updated
customizations
(SP 2013 mode)
8. Upgrade site
collections to
2013 mode
9. Test site
collections in SP
2013 mode
6. Update custom
solutions for SP
2013
4. Upgrade
content
databases
12. 15 Solution Deployment Defaults (from Sean Livingston„s
SPC2012)
1. SP 2013 farm
setup
3. Transfer
customizations
(SP 2010 mode)
2. Upgrade
service apps
databases
5. Test site
collections in SP
2010 mode
7. Install updated
customizations
(SP 2013 mode)
8. Upgrade site
collections to
2013 mode
9. Test site
collections in SP
2013 mode
6. Update custom
solutions for SP
2013
4. Upgrade
content
databases
13. Upgrade site collections via powershell:
Upgrade-SPSite http://example.com/ -VersionUpgrade –Unthrottled
Upgrade via UI worked only when 2013 wsps were deployed both
to 14 and 15 hives
1. SP 2013 farm
setup
3. Transfer
customizations
(SP 2010 mode)
2. Upgrade
service apps
databases
5. Test site
collections in SP
2010 mode
7. Install updated
customizations
(SP 2013 mode)
8. Upgrade site
collections to
2013 mode
9. Test site
collections in SP
2013 mode
6. Update custom
solutions for SP
2013
4. Upgrade
content
databases
14. Front page showed File not found error
In content database AllDocs table column SetupPathVersion has 4
value for most files (for 2013 sites it should contain 15)
Problems comes from Sharepoint virtual file providers‟s fallback logic
Sharepoint tried to find files (page layouts, master pages) in 14 hive,
not in 15
SetupPath file fallback logic didn‟t work as expected (should check
current CompatibilityLevel version directory first then legacy one(s))
Quick fix by changing content database (don‟t use it):
update [dbo].[AllDocs]
set [SetupPathVersion] = 15
1. SP 2013 farm
setup
3. Transfer
customizations
(SP 2010 mode)
2. Upgrade
service apps
databases
5. Test site
collections in SP
2010 mode
7. Install updated
customizations
(SP 2013 mode)
8. Upgrade site
collections to
2013 mode
9. Test site
collections in SP
2013 mode
6. Update custom
solutions for SP
2013
4. Upgrade
content
databases
15. Created list of all page layouts and masterpages, used in the migrated sites.
Copied all of them as is, without modifications, but with new file names. It is
important to not change web part zones during this process, because if e.g. Id of
web part zone would be changed, we would lost the content after replacing of the
original page layouts. For file names we used the following rule: [old file name] +
“2013” + [old extension], i.e. if old file name was foo.aspx, then new is
foo.2013.aspx.
Created new feature which contains new page layouts and
masterpages, provisioned it and activated on the sites.
Created PowerShell scripts which recursively changed masterpages on all sub sites
and page layouts of all publishing pages.
1. SP 2013 farm
setup
3. Transfer
customizations
(SP 2010 mode)
2. Upgrade
service apps
databases
5. Test site
collections in SP
2010 mode
7. Install updated
customizations
(SP 2013 mode)
8. Upgrade site
collections to
2013 mode
9. Test site
collections in SP
2013 mode
6. Update custom
solutions for SP
2013
4. Upgrade
content
databases
16. Give the SP 2013 solution a new Solution ID.
Install SP 2010 solution to 14 hive and SP 2013 solution to 15 hive on SP2013 server.
Give all site definitions in SP 2013 solution a higher Revision number for example:
<Project Title="Migrationtest" Revision="3" .../>
Create Upgrade.xml file (destination: {SharePointRoot}CONFIGUPGRADE) where add a webtemplate
element for every site definition you use:
Attach SP 2010 content database to SP 2013.
Do visual upgrade:
Upgrade-SPSite -Identity <url>
Close and reopen powershell console and perform version upgrade:
Upgrade-SPSite -Identity <url> -VersionUpgrade
After that paths of the files of upgraded sitecollection should be changed
1. SP 2013 farm
setup
3. Transfer
customizations
(SP 2010 mode)
2. Upgrade
service apps
databases
5. Test site
collections in SP
2010 mode
7. Install updated
customizations
(SP 2013 mode)
8. Upgrade site
collections to
2013 mode
9. Test site
collections in SP
2013 mode
6. Update custom
solutions for SP
2013
4. Upgrade
content
databases
17. Images in Site collection images document library and xslt files in Style
library, which were added before upgrade, returned HTTP 404 File not found
error. All images thumbnails were shown properly
Solution: delete upgraded files and then re-upload them with the same file names
Fix /_layouts and /_controltemplate paths in code to /15/_layouts and
/15/_controltemplates
Changed Revision (incremented on 1) and UIVersion in custom web templates‟
onet.xml from 4 to 15
1. SP 2013 farm
setup
3. Transfer
customizations
(SP 2010 mode)
2. Upgrade
service apps
databases
5. Test site
collections in SP
2010 mode
7. Install updated
customizations
(SP 2013 mode)
8. Upgrade site
collections to
2013 mode
9. Test site
collections in SP
2013 mode
6. Update custom
solutions for SP
2013
4. Upgrade
content
databases