Actualizar SharePoint 2013 a 2016 de SharePoint a través de Workflow Manager

 

Resumen

Al actualizar Microsoft SharePoint 2013 a 2016 de SharePoint de Microsoft, no tienes que crear una nueva instalación de Workflow Manager. Puede utilizar la misma instalación que utilizó el conjunto de servidores de SharePoint 2013 en la nueva granja de SharePoint 2016.

Sin embargo, tendrá que crear una nueva instalación de Workflow Manager en determinadas circunstancias. Por ejemplo, si desea mover Workflow Manager a un sistema operativo distinto de Windows, o si el servidor de base de datos back-end es baja. En estas situaciones, siga los pasos de Recuperación ante desastres de Workflow Manager para crear la nueva instalación de administrador de flujo de trabajo mediante el uso de las bases de datos antiguas. Asegúrese de que utiliza la copia más reciente de las bases de datos de Workflow Manager.

Fondo

Cuando se utiliza junto con el Administrador de flujos de trabajo de SharePoint Server, Workflow Manager mantiene un registro de los sitios de SharePoint que han publicado los flujos de trabajo. Cada sitio está representado en Workflow Manager como un ámbito. Workflow Manager 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 flujos de trabajo de SharePoint. Cuando se carga la página de estado de flujo de trabajo, SharePoint realiza primero una llamada a Workflow Manager para ver si existe el flujo de trabajo. Para ello, utiliza el identificador de instancia de flujo de trabajo. A continuación, SharePoint carga el resto de la información de flujo de trabajo. Si el identificador de instancia de flujo de trabajo no se encuentra en el Administrador de flujos de trabajo, o si se produce un error durante la comunicación con Workflow Manager, recibirá un mensaje de error.

Actualizar SharePoint 2013 a 2016 de SharePoint a través de Workflow Manager

Requisitos previos

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

  • Instalar la versión más reciente del cliente de administrador de flujo de trabajo en los servidores de SharePoint 2013 y asegúrese de que todos los flujos de trabajo son funcionales.

  • Instalar el conjunto de servidores de SharePoint de 2016 y actualizar todas las aplicaciones de servicio y bases de datos de contenido.

  • En todos los servidores del conjunto de SharePoint 2016, instalar la versión más reciente del cliente de Workflow Manager mediante Web PI.

Registrar el Administrador de flujo de trabajo con SharePoint 2016

Para ello, siga estos pasos:

  1. En el conjunto de servidores de SharePoint 2013, vaya a Administración Central > Administración de aplicaciones > Administrar aplicaciones de servicioy, a continuación, eliminar Proxy de aplicación de servicio de flujo de trabajo.

  2. En el conjunto de servidores de SharePoint de 2016, ejecute el siguiente cmdlet de PowerShell para par SharePoint 2016 junto con la misma instalación de Workflow Manager:

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

Nota: Tenga en cuenta que las bases de datos de contenido que se han actualizado en la nueva granja de SharePoint 2016 deben ha restaurado de la copia de seguridad más reciente. Esto ayuda a evitar que las diferencias y brechas entre Workflow Manager y las bases de datos de contenido.

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

Problema 1: Se cambia la dirección URL del sitio

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

Problema 2: Flujos de trabajo no se inician en algunos sitios

Si los flujos de trabajo no se inician en algunos sitios, volver a publicar los flujos de trabajo desde el sitio Web afectado. O bien, ejecutar el trabajo del temporizador fuente de actualizar confianza seguridad Token servicios de metadatos .

Problema 3: Flujos de trabajo producirá un error y devolvían el error "No se puede obtener información de permisos de principales de la aplicación"

Síntomas

Imagine el siguiente escenario:

  • Flujos de trabajo de SharePoint 2013 y Workflow Manager configurado en su conjunto.

  • Sitios de la granja recientemente se han conectado a una instancia ya existente de Workflow Manager.

En este escenario, los flujos de trabajo que se crean después de conectarse a la instalación de Workflow Manager fin correctamente. Sin embargo, los flujos de trabajo que se crean antes de conectarse al administrador de flujo de trabajo no se finalizan. En su lugar, se atascan cuando intentan finalizar o permanecen en un estado suspendido. Flujos de trabajo que permanecen suspendidas, recibirá un error HTTP 500. Además, se registrará la entrada siguiente en el registro de ULS:

No se puede obtener información de permisos de principales de la aplicación.


Causa

Workflow Manager ya tiene un ámbito para el sitio en el que se están ejecutando los flujos de trabajo. Dado que el ámbito tiene un valor incorrecto de SPAuthenticationRealm en el campo ApplicationID del ámbito, no existe ninguna clase de SPAppPrincipal en el objeto SPWeb que coincide con el valor de ApplicationID del ámbito. Por lo tanto, los flujos de trabajo producirá un error y devuelve un mensaje de error.

Solución

Para resolver este problema, utilice los siguientes comandos de PowerShell para registrar el nuevo objeto de SPAppPrincipal . Para ello, en el objeto SPWeb cuyo identificador coincide con el valor de ApplicationID almacenada en el ámbito del objeto SPWeb en Workflow Manager.

#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
$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
 
Más información

Para obtener el valor de SPAuthenticationRealm de ApplicationID almacenada en el ámbito de aplicación, siga estos pasos:

  1. Ejecute la siguiente consulta SQL:

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


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

  2. Resultados de la consulta, haga clic en el valor de la columna de SecuritySettings para abrir el XML en una ficha independiente en SQL Server Management Studio.

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

    <ApplicationId>SPWeb_object_ID@SPAuthenticationRealm</ApplicationId>

    Nota: El GUID que aparece antes de la arroba (@) es el identificador del objeto SPWeb y el GUID que aparece después de la arroba es el valor de SPAuthenticationRealm .

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

11/03/2017 w3wp.exe 12:13:16.72 an3eg (SPWFE01:0x51FC) 0x1298 SharePoint Foundation autenticación autorización medio no se puede obtener información de permisos de principales de la aplicación. AppId=i:0i.t|ms.sp.ext| < ID del objeto SPWeb > @< SPAuthenticationRealm >
 
11/03/2017 w3wp.exe 12:13:16.72 error de aplicación medio de 8nca (SPWFE01:0x51FC) 0x1298 SharePoint Foundation General al tener acceso al /site/teamsite/teamweb/_vti_bin/client.svc, Error = referencia a objeto no establecida como instancia de un o bjeto.   en Microsoft.SharePoint.SPAppRequestContext.EnsureTenantPermissions (SPServiceContext serviceContext, Boolean throwIfAppNotExits, Boolean allowFullReset) en Microsoft.SharePoint.SPAppRequestContext.InitCurrent (HttpContext context) en Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.InitCurrentAppPrincipalToken (HttpContext context) en Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.PostAuthenticateRequestHandler (objeto oSender, ea EventArgs) en System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() en System.Web.HttpApplication.ExecuteStep (IExecutionStep paso, Boolean & completedSynchronously)

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×