Compartir a través de


Actualizar de SharePoint 2013 a SharePoint 2016 través del Administrador de flujos de trabajo

SE APLICA A:yes-img-132013 yes-img-162016 no-img-192019 no-img-seSubscription Edition no-img-sopSharePoint en Microsoft 365

Resumen

Al actualizar Microsoft SharePoint 2013 a Microsoft SharePoint 2016, no es necesario crear una nueva instalación Administrador de flujos de trabajo. Puede usar la misma instalación que usó la granja de SharePoint 2013 en la nueva granja de SharePoint 2016. Sin embargo, es posible que tenga que crear una nueva instalación de Administrador de flujos de trabajo en determinadas circunstancias. Por ejemplo, si desea mover Administrador de flujos de trabajo a otro sistema operativo Windows o si se retira el servidor de base de datos back-end. En estas situaciones, siga los pasos descritos en Administrador de flujos de trabajo Recuperación ante desastres para crear la nueva instalación Administrador de flujos de trabajo mediante las bases de datos antiguas. Asegúrese de usar la copia más reciente de las bases de datos de Administrador de flujos de trabajo.

Información previa

Cuando se usa SharePoint Server junto con Administrador de flujos de trabajo, Administrador de flujos de trabajo mantiene un registro de los sitios de SharePoint que han publicado flujos de trabajo. Cada sitio se representa en Administrador de flujos de trabajo como un ámbito. Administrador de flujos de trabajo también almacena las definiciones de flujo de trabajo, todas las instancias de flujo de trabajo y sus estados.

SharePoint almacena el historial de flujo de trabajo y la información de la tarea de flujo de trabajo para flujos de trabajo de SharePoint. Cuando se carga la página de estado del flujo de trabajo, SharePoint realiza primero una llamada a Administrador de flujos de trabajo para ver si el flujo de trabajo existe. Para ello, usa el identificador de instancia de flujo de trabajo. A continuación, SharePoint carga el resto de la información del flujo de trabajo. Si falta el identificador de instancia de flujo de trabajo en Administrador de flujos de trabajo o si se produce un error durante la comunicación con Administrador de flujos de trabajo, recibirá un mensaje de error.

Cómo actualizar SharePoint 2013 a SharePoint 2016 mediante Administrador de flujos de trabajo

Requisitos previos

Los siguientes prrequisitos deben estar instalados esta actualización:

  • Instale la actualización acumulativa más reciente para Administrador de flujos de trabajo mediante el Instalador de plataforma web (Web PI).

  • Instale la versión más reciente de Administrador de flujos de trabajo Client en los servidores de SharePoint 2013 y asegúrese de que todos los flujos de trabajo sean funcionales.

  • Instale la granja de servidores de SharePoint Server 2016 y actualice todas las aplicaciones de servicio y las bases de datos de contenido.

  • En todos los servidores de granja de servidores de SharePoint Server 2016, instale la versión más reciente de Administrador de flujos de trabajo Client mediante Web PI.

Registro de Administrador de flujos de trabajo con SharePoint Server 2016

Siga estos pasos para registrar Administrador de flujos de trabajo con SharePoint Server 2016:

  1. En la granja de servidores de SharePoint 2013, en el sitio web de Administración central, haga clic en Administración de aplicaciones, haga clic en Administrar aplicaciones de servicio y, a continuación, elimine El proxy de aplicación de servicio de flujo de trabajo.

  2. En la granja de servidores de SharePoint Server 2016, ejecute el siguiente cmdlet de Microsoft PowerShell para emparejar SharePoint 2016 con el mismo Administrador de flujos de trabajo instalación:

   Register-SPWorkflowService -SPSite <SharePoint site URL> -
   WorkflowHostUri <Workflow service endpoint URL> -force

Problemas comunes que puede experimentar después de la actualización

Problema 1: Se ha cambiado la dirección URL del sitio

Si se cambia la dirección URL del sitio en SharePoint 2016, pero el identificador de sitio sigue siendo el mismo, debe volver a publicar un flujo de trabajo desde el sitio afectado mediante SharePoint Designer.

Problema 2: Los flujos de trabajo no se inician en algunos sitios

Si los flujos de trabajo no se inician en algunos sitios, vuelva a publicar los flujos de trabajo desde el sitio afectado. O bien, ejecute el trabajo del temporizador actualizar fuente de metadatos de Servicios de token de seguridad de confianza .

Problema 3: Se produce un error en los flujos de trabajo y se devuelve el error "No se puede obtener la información de permisos de la entidad de seguridad de la aplicación".

Imagine la siguiente situación:

  • Tiene flujos de trabajo de SharePoint 2013 y Administrador de flujos de trabajo configurados en la granja de servidores.

  • Recientemente ha conectado sitios de la granja a una instancia de Administrador de flujos de trabajo existente anteriormente.

En este escenario, los flujos de trabajo que se crean después de conectarse a la Administrador de flujos de trabajo instalación finalizan correctamente. Sin embargo, los flujos de trabajo que se crean antes de conectarse a Administrador de flujos de trabajo no finalizan. En su lugar, se bloquean cuando intentan finalizar o permanecen en un estado suspendido. Para los flujos de trabajo que permanecen suspendidos, recibe un error HTTP 500. Además, la siguiente entrada se registra en el registro de ULS: No se puede obtener información de permisos de entidad de seguridad de la aplicación.

Causa

Administrador de flujos de trabajo ya tiene un ámbito para el sitio en el que se ejecutan los flujos de trabajo. Dado que el ámbito tiene un valor SPAuthenticationRealm incorrecto en el campo ApplicationID del ámbito, no existe ninguna clase SPAppPrincipal en el objeto SPWeb que coincida con el valor ApplicationID del ámbito. Por lo tanto, los flujos de trabajo producen un error y devuelven un mensaje de error.

Solución

Para resolver este problema, use los siguientes comandos de PowerShell para registrar el nuevo objeto SPAppPrincipal . Esto se hace en el objeto SPWeb cuyo identificador coincide con el valor ApplicationID almacenado en el ámbito del objeto SPWeb en Administrador de flujos de trabajo.

   #Variables
   $webUrl = "http://sp.contoso.com/sites/teamsite/teamweb"
   $oldAuthRealm = "58a2b173-0f88-4bff-935b-bf3778cd0524" #authentication realm expected by Workflow Manager
   $newAuthRealm = "48834d17-d729-471e-b0d0-a0ec83b49de0" #authentication realm of current farm
   #Get the SPWeb and SPSite objects, and the id of the web
   $web = Get-SPWeb $webUrl
   $site = $web.site
   $clientId = $web.Id
   #Create the old and new app principal ids
   $oldAppId = "$clientId@$oldAuthRealm"
   $newAppId = "$clientId@$newAuthRealm"
   #Register the app principal with the old authentication realm
   Register-SPAppPrincipal -DisplayName "Old Workflow" -Site $web -NameIdentifier $oldAppId
   #Set permissions for the app principal
   #If app-only permissions are used in old environment, you must use the -EnableAppOnlyPolicy parameter to pass to the cmdlet for app steps to succeed
   $oldAppPrincipal = Get-SPAppPrincipal -Site $web -NameIdentifier $oldAppId
   Set-SPAppPrincipalPermission -Site $web -AppPrincipal $oldAppPrincipal -Scope SiteCollection -Right FullControl
   Set-SPAppPrincipalPermission -Site $web -AppPrincipal $oldAppPrincipal -Scope Site -Right FullControl
   #List the app principals with the old and new authentication realms in the ids
   Get-SPAppPrincipal -Site $web -NameIdentifier $oldAppId | fl
   Get-SPAppPrincipal -Site $web -NameIdentifier $newAppId | fl

Tenga en cuenta: si la entidad de seguridad de la aplicación tenía permisos de App-Only en el sitio de SharePoint 2013, deberá pasar -EnableAppOnlyPolicy también al cmdlet Set-SPAppPrincipalPermission.

Más información

Para obtener el valor SPAuthenticationRealm de ApplicationID almacenado en el ámbito, siga estos pasos:

  1. Ejecute la siguiente consulta SQL:

    SELECT *
    FROM [WFResourceManagementDB].[dbo].[Scopes] WITH (NOLOCK)
    WHERE Description like '%<WebID>%'
    
    

    Donde <WebID> es el marcador de posición del identificador del objeto SPWeb.

  2. En el resultado de la consulta, haga clic en el valor de la columna SecuritySettings para abrir el XML en una pestaña independiente de SQL Server Management Studio.

  3. En el archivo XML, se encuentra el elemento ApplicationID que contiene el valor. Por ejemplo, busque el siguiente elemento:

    <ApplicationId>SPWeb_object_ID@SPAuthenticationRealm</ApplicationId>`
    

    Nota:

    El GUID que aparece delante del signo at (@) es el identificador del objeto SPWeb y el GUID que aparece después del signo at es el valor SPAuthenticationRealm.

Como alternativa, puede encontrar el valor de SPAuthenticationRealm en el registro ULS, como en la entrada de registro de ejemplo siguiente:

11/03/2017 12:13:16.72 w3wp.exe (SPWFE01:0x51FC) 0x1298 autorización de autenticación de SharePoint Foundation an3eg Medium No se puede obtener información de permisos de entidad de seguridad de la aplicación. AppId=i:0i.t|ms.sp.ext|<SPWeb object ID>@<SPAuthenticationRealm>

11/03/2017 12:13:16.72 w3wp.exe (SPWFE01:0x51FC) 0x1298 SharePoint Foundation General 8nca Medium Application error al acceder a /site/teamsite/teamweb/_vti_bin/client.svc, Error=Referencia de objeto no establecida en una instancia de un objeto. at Microsoft.SharePoint.SPAppRequestContext.EnsureTenantPermissions(SPServiceContext serviceContext, Boolean throwIfAppNotExits, Boolean allowFullReset) en Microsoft.SharePoint.SPAppRequestContext.InitCurrent(contexto HttpContext) en Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.InitCurrentAppPrincipalToken(contexto HttpContext) en Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.PostAuthenticateRequestHandler(Object oSender, EventArgs ea) en System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() en System.Web.HttpApplication.ExecuteStep(paso IExecutionStep, booleano& completedSynchronously)