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.
Numero KB originale: 4073758
Riepilogo
Quando si aggiorna Microsoft SharePoint 2013 a Microsoft SharePoint 2016, non è necessario creare una nuova installazione di Workflow Manager. È possibile usare la stessa installazione usata dalla farm di SharePoint 2013 nella nuova farm di SharePoint 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.
Aggiornare SharePoint 2013 a SharePoint 2016 tramite Workflow Manager
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 2013 e assicurarsi che tutti i flussi di lavoro siano funzionanti.
- Installare la farm di SharePoint 2016 e aggiornare tutte le applicazioni di servizio e i database del contenuto.
- In tutti i server farm di SharePoint 2016 installare la versione più recente di Workflow Manager Client usando l'elemento Pi Greco Web.
Registrare Workflow Manager con SharePoint 2016
A tal fine, attenersi alla seguente procedura:
Nella farm di SharePoint 2013 passare a Central Amministrazione Application Management Manage Service Application (Gestione applicazioni) e quindi eliminare Workflow Service Application Proxy.In the SharePoint 2013 farm, go to Central Amministrazione>Application Management>Manage Service Application, and then delete Workflow Service Application Proxy.
Nella farm di SharePoint 2016 eseguire il cmdlet di PowerShell seguente per associare SharePoint 2016 alla stessa installazione Workflow Manager:
Register-SPWorkflowService -SPSite <SharePoint site URL> -WorkflowHostUri <Workflow service endpoint URL> -force
Nota
Tenere presente che i database del contenuto aggiornati nella nuova farm di SharePoint 2016 devono essere stati ripristinati dal backup più recente. Ciò consente di evitare differenze e lacune tra Workflow Manager e i database del contenuto.
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 restituiscono l'errore "Impossibile ottenere informazioni sull'autorizzazione dell'entità app"
Sintomi
Considerare lo scenario descritto di seguito:
- I flussi di lavoro di SharePoint 2013 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 non corretto SPAuthenticationRealm
nel ApplicationID
campo dell'ambito, nell'oggetto SPWeb non esiste alcuna SPAppPrincipal
classe corrispondente al ApplicationID
valore dell'ambito. Di conseguenza, i flussi di lavoro hanno esito negativo e restituisce un messaggio di errore.
Risoluzione
Per risolvere questo problema, usare i comandi di PowerShell seguenti per registrare il nuovo SPAppPrincipal
oggetto. Questa operazione viene attivata nell'oggetto il SPWeb
cui ID corrisponde al ApplicationID
valore 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
$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 SPAuthenticationRealm
valore di ApplicationID
archiviato nell'ambito, seguire questa procedura:
Eseguire la query SQL seguente:
SELECT * FROM [WFResourceManagementDB].[dbo].[Scopes] WITH (NOLOCK) WHERE Description like '%<WebID>%'
Nota
< Webid> è il segnaposto per l'ID dell'oggetto
SPWeb
.Nel risultato della query fare clic sul valore nella
SecuritySettings
colonna 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 è ilSPAuthenticationRealm
valore .
In alternativa, è possibile trovare il SPAuthenticationRealm
valore nel log ULS, ad esempio nella voce di log di esempio seguente:
Data/ora w3wp.exe (SPWFE01:0x51FC) 0x1298 autorizzazione di autenticazione di SharePoint Foundation an3eg Medium Non è possibile ottenere informazioni sull'autorizzazione dell'entità app. AppId=i:0i.t|ms.sp.ext|<ID> oggetto SPWeb@<SPAuthenticationRealm>
Data/ora 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)