Upgrade SPContentDatabase, and all SPSites From SP2010 to SP2013 (and beyond)

Bradway, Drew 1 Reputation point
2022-01-17T18:10:16.917+00:00

Hello,
I am attempting to upgrade SP2010 content databases by attaching them to SP2013. I plan to upgrade them and then move them to SP2016, and then SP2019 for on-prem archival. Right now, I am unable to upgrade the database to SP2016 because sites are still stuck in the SP2010 experience. When attempting to navigate to a site in the affected database, I get the below errors in the ULS log.

01/17/2022 17:59:47.78 w3wp.exe (0x127C) 0x14D4 Web Content Management Publishing 8vzd High PortalSiteMapProvider was unable to fetch root node, request URL: /sites/example/default.aspx, message: Method not found: 'Boolean Microsoft.SharePoint.Utilities.SPUtility.SafeForDataBinding(System.Reflection.Assembly, System.Reflection.Assembly, System.String)'., stack trace: at Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider.get_CurrentSite() at Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider.GetObjectFactoryIfCached() at Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider.get_TryGetRootNode() ecb517a0-e587-f0e0-f063-636d433bdbae

01/17/2022 17:59:47.78 w3wp.exe (0x127C) 0x14D4 SharePoint Foundation General 8nca Medium Application error when access /sites/example/default.aspx, Error=The DataSourceID of 'TopNavigationMenuV4' must be the ID of a control of type IHierarchicalDataSource. A control with ID 'topSiteMap' could not be found. at System.Web.UI.WebControls.HierarchicalDataBoundControl.GetDataSource() at System.Web.UI.WebControls.HierarchicalDataBoundControl.ConnectToHierarchicalDataSource() at System.Web.UI.WebControls.HierarchicalDataBoundControl.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) ecb517a0-e587-f0e0-f063-636d433bdbae

01/17/2022 17:59:47.78 w3wp.exe (0x127C) 0x14D4 SharePoint Foundation Runtime tkau Unexpected System.Web.HttpException: The DataSourceID of 'TopNavigationMenuV4' must be the ID of a control of type IHierarchicalDataSource. A control with ID 'topSiteMap' could not be found. at System.Web.UI.WebControls.HierarchicalDataBoundControl.GetDataSource() at System.Web.UI.WebControls.HierarchicalDataBoundControl.ConnectToHierarchicalDataSource() at System.Web.UI.WebControls.HierarchicalDataBoundControl.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) ecb517a0-e587-f0e0-f063-636d433bdbae

01/17/2022 17:59:47.78 w3wp.exe (0x127C) 0x14D4 SharePoint Foundation General ajlz0 High Getting Error Message for Exception System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.Web.HttpException (0x80004005): The DataSourceID of 'TopNavigationMenuV4' must be the ID of a control of type IHierarchicalDataSource. A control with ID 'topSiteMap' could not be found. at System.Web.UI.WebControls.HierarchicalDataBoundControl.GetDataSource() at System.Web.UI.WebControls.HierarchicalDataBoundControl.ConnectToHierarchicalDataSource() at System.Web.UI.WebControls.HierarchicalDataBoundControl.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.HandleError(Exception e) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) ecb517a0-e587-f0e0-f063-636d433bdbae

01/17/2022 17:59:47.78 w3wp.exe (0x127C) 0x14D4 SharePoint Foundation General aat87 Monitorable An unexpected error has occurred. ecb517a0-e587-f0e0-f063-636d433bdbae

I have two questions:
1: How can I fix this error and get the site to load?
2: Is there a way to upgrade the site from compatibility level 14 to compatibility level 15 using PowerShell instead of navigating to the site settings page and manually performing the upgrade? I have about 1500 sites that this will need to happen on so a PowerShell option would be preferable.

Thank you very much!

SharePoint Development
SharePoint Development
SharePoint: A group of Microsoft Products and technologies used for sharing and managing content, knowledge, and applications.Development: The process of researching, productizing, and refining new or existing technologies.
2,810 questions
SharePoint Server Management
SharePoint Server Management
SharePoint Server: A family of Microsoft on-premises document management and storage systems.Management: The act or process of organizing, handling, directing or controlling something.
2,900 questions
{count} votes

2 answers

Sort by: Most helpful
  1. Allen Xu_MSFT 13,806 Reputation points
    2022-01-18T05:42:06.49+00:00

    Hi @Bradway, Drew ,

    1. If you want to find out the root cause of this issue, it is recommended to open a support ticket with Microsoft to have a dedicated Technical Professional to investigate. Please see the contact number for your region via this entrance: Global Customer Service phone numbers.
    2. You can control which mode (2010 or 2013, or both) can be used when a user creates a site collection. The CompatibilityRange property on a web application controls the site modes available for a web application. You can view or change the settings for CompatibilityRange by using PowerShell.
      To change compatibility range for site creation modes for a web application by using PowerShell:
      At the PowerShell command prompt, type the following command to change the compatibility range settings to a specific range: $wa=Get-SPWebApplication <URL> # Stores the web application at that URL as a variable $wa.CompatibilityRange = [Microsoft.SharePoint.SPCompatibilityRange]::<RangeName> # Specifies which range to use $wa.Update() # Updates the CompatibilityRange setting to use only the range you specified $wa.CompatibilityRange # Returns the new CompatibilityRange for the web application Where:
      • <URL> is URL for the web application that you want to change.
      • RangeName is one of the following values: OldVersions, NewVersion, AllVersions.

    At the PowerShell command prompt, type the following command to change the values for the CompatibilityRange manually:

    $wa=Get-SPWebApplication <URL>  
    \# Stores the web application at that URL as a variable   
    $range = New-Object Microsoft.SharePoint.SPCompatibilityRange(<Integer>,<Integer>)  
    \# Creates a new compatibility range from <Integer> to <Integer>  
    $wa.CompatibilityRange = $range  
    \# Specifies which range to use  
    $wa.Update()  
    #Updates the CompatibilityRange setting to use only the range you specified with $range  
    $wa.CompatibilityRange  
    \# Returns the new CompatibilityRange for the web application  
    

    Where:

    • <URL> is URL for the web application that you want to change.
    • Integer is a number to use as the minimum or maximum value. For example, (14,15) would set the MinCompatibilityLevel to 14 (2010) and the MaxCompatibilityLevel to 15 (2013). The DefaultCompatibilityLevel is automatically set to the lower of the MaxCompatibilityLevel and the current major version (for example, 15).

    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.


  2. Bradway, Drew 1 Reputation point
    2022-02-07T20:54:20.817+00:00

    The solution on SharePoint 2013 was to Upgrade-SPSite $site -VersionUpgrade
    My issue was that the documentation page from Microsoft had copy/pasted the description for the flags and seemed to indicate that it would not update the version number when it actually does. Thank you.

    0 comments No comments