Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
SI APPLICA A:2013
2016
2019
Subscription Edition
SharePoint in Microsoft 365
Riepilogo
Quando si aggiorna Microsoft SharePoint Server 2016 a Microsoft SharePoint Server 2019, non è necessario creare una nuova installazione Workflow Manager. È possibile usare la stessa installazione usata dalla farm di SharePoint 2016 nella nuova farm di SharePoint Server 2016. Potrebbe tuttavia essere necessario creare una nuova installazione di Workflow Manager in determinate circostanze. Ad esempio, se si desidera spostare Workflow Manager in un sistema operativo Windows diverso o se il server di database back-end viene disattivato. In queste situazioni, seguire i passaggi descritti in Workflow Manager ripristino di emergenza per creare la nuova installazione Workflow Manager usando i database precedenti. Assicurarsi di usare la copia più recente dei database Workflow Manager.
Background
Quando si usa SharePoint Server insieme a Workflow Manager, Workflow Manager mantiene un record dei siti di SharePoint che hanno pubblicato flussi di lavoro. Ogni sito è rappresentato in Workflow Manager come ambito. Workflow Manager archivia anche le definizioni del flusso di lavoro, tutte le istanze del flusso di lavoro e i relativi stati.
SharePoint archivia la cronologia del flusso di lavoro e le informazioni sulle attività del flusso di lavoro per i flussi di lavoro di SharePoint. Quando viene caricata la pagina di stato del flusso di lavoro, SharePoint esegue prima una chiamata a Workflow Manager per verificare se il flusso di lavoro esiste. A tale scopo, usa l'ID istanza del flusso di lavoro. Quindi, SharePoint carica il resto delle informazioni del flusso di lavoro. Se l'ID istanza del flusso di lavoro è mancante in Workflow Manager o se si verifica un errore durante la comunicazione con Workflow Manager, viene visualizzato un messaggio di errore.
Come aggiornare SharePoint Server 2016 a SharePoint Server 2019 usando Workflow Manager
Prerequisiti
Questo aggiornamento deve essere installato nei seguenti prerequisiti:
Installare l'aggiornamento cumulativo più recente per Workflow Manager usando Web Platform Installer (Pi Web).
Installare la versione più recente di Workflow Manager Client nei server SharePoint 2016 e assicurarsi che tutti i flussi di lavoro siano funzionanti.
Installare la farm SharePoint Server 2019 e aggiornare tutte le applicazioni di servizio e i database del contenuto.
In tutti i server farm SharePoint Server 2019 installare la versione più recente di client di Workflow Manager usando l'elemento PI Web.
Registrare Workflow Manager con SharePoint Server 2019
Per registrare Workflow Manager con SharePoint Server 2019, seguire questa procedura:
Nella farm di SharePoint 2016, nel sito Web Amministrazione centrale fare clic su Gestione applicazioni , fare clic su Gestisci applicazioni di servizio, quindi eliminare Proxy di applicazione del servizio flusso di lavoro.
Nella farm SharePoint Server 2019 eseguire il cmdlet di Microsoft PowerShell seguente per associare SharePoint 2016 alla stessa installazione Workflow Manager:
Register-SPWorkflowService -SPSite <SharePoint site URL> -
WorkflowHostUri <Workflow service endpoint URL> -force
Problemi comuni che possono verificarsi dopo l'aggiornamento
Problema 1: L'URL del sito viene modificato
Se l'URL del sito viene modificato in SharePoint 2016 ma l'ID sito rimane invariato, è necessario ripubblicare un flusso di lavoro dal sito interessato usando SharePoint Designer.
Problema 2: i flussi di lavoro non vengono avviati in alcuni siti
Se i flussi di lavoro non vengono avviati in alcuni siti, ripubblicare i flussi di lavoro dal sito interessato. In alternativa, eseguire il processo timer Aggiorna feed di metadati dei servizi token di sicurezza attendibili .
Problema 3: i flussi di lavoro hanno esito negativo e restituisce l'errore "Impossibile ottenere informazioni sull'autorizzazione dell'entità app"
Considerare lo scenario descritto di seguito:
I flussi di lavoro di SharePoint 2016 e Workflow Manager configurati nella farm.
Di recente sono stati connessi siti nella farm a un'istanza di Workflow Manager esistente in precedenza.
In questo scenario, i flussi di lavoro creati dopo la connessione al Workflow Manager'installazione vengono completati correttamente. Tuttavia, i flussi di lavoro creati prima di connettersi a Workflow Manager non vengono completati. Al contrario, si bloccano quando tentano di completare o rimangono in uno stato sospeso. Per i flussi di lavoro che rimangono sospesi, viene visualizzato un errore HTTP 500. Inoltre, nel log ULS viene registrata la voce seguente: Impossibile ottenere informazioni sull'autorizzazione dell'entità app.
Causa
Workflow Manager ha già un ambito per il sito in cui sono in esecuzione i flussi di lavoro. Poiché l'ambito ha un valore SPAuthenticationRealm non corretto nel campo ApplicationID dell'ambito, nell'oggetto SPWeb non esiste alcuna classe SPAppPrincipal corrispondente al valore ApplicationID dell'ambito. Di conseguenza, i flussi di lavoro hanno esito negativo e restituiscono un messaggio di errore.
Risoluzione
Per risolvere questo problema, usare i comandi di PowerShell seguenti per registrare il nuovo oggetto SPAppPrincipal . Questa operazione viene attivata nell'oggetto SPWeb il cui ID corrisponde al valore ApplicationID archiviato nell'ambito dell'oggetto SPWeb in 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
#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
Ulteriori informazioni
Per ottenere il valore SPAuthenticationRealm di ApplicationID archiviato nell'ambito, seguire questa procedura:
Eseguire la query SQL seguente:
SELECT * FROM [WFResourceManagementDB].[dbo].[Scopes] WITH (NOLOCK) WHERE Description like '%<WebID>%'
Dove <WebID> è il segnaposto per l'ID dell'oggetto SPWeb.
Nel risultato della query fare clic sul valore nella colonna SecuritySettings per aprire il codice XML in una scheda separata in SQL Server Management Studio.
Nel file XML individuare l'elemento ApplicationID che contiene il valore. Ad esempio, individuare l'elemento seguente:
<ApplicationId>SPWeb_object_ID@SPAuthenticationRealm</ApplicationId>`
Nota
Il GUID visualizzato prima del segno di corrispondenza (@) è l'ID dell'oggetto SPWeb e il GUID visualizzato dopo il segno di corrispondenza è il valore SPAuthenticationRealm.
In alternativa, è possibile trovare il valore SPAuthenticationRealm nel log ULS, ad esempio nella voce di log di esempio seguente:
03/11/2017 12:13:16.72 w3wp.exe (SPWFE01:0x51FC) 0x1298 SharePoint Foundation Authentication Authorization an3eg Medium Non è possibile ottenere informazioni sull'autorizzazione dell'entità app. AppId=i:0i.t|ms.sp.ext|<ID> oggetto SPWeb@<SPAuthenticationRealm>
03/11/2017 12:13:16.72 w3wp.exe (SPWFE01:0x51FC) 0x1298 errore dell'applicazione media di SharePoint Foundation General 8nca quando si accede a /site/teamsite/teamweb/_vti_bin/client.svc, il riferimento Error=Object non è impostato su un'istanza di un oggetto. in Microsoft.SharePoint.SPAppRequestContext.EnsureTenantPermissions(SPServiceContext serviceContext, Boolean throwIfAppNotExits, Boolean allowFullReset) in Microsoft.SharePoint.SPAppRequestContext.InitCurrent(HttpContext context) in Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.InitCurrentAppPrincipalToken(HttpContext context) in Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.PostAuthenticateRequestHandler(Object oSender, EventArgs ea) all'indirizzo System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() nel passaggio System.Web.HttpApplication.ExecuteStep(IExecutionStep, Boolean& completedSynchronously)