Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ursprüngliche KB-Nummer: 4073758
Zusammenfassung
Wenn Sie Microsoft SharePoint 2013 auf Microsoft SharePoint 2016 aktualisieren, müssen Sie keine neue Workflow-Manager-Installation erstellen. Sie können dieselbe Installation verwenden, die von der SharePoint 2013-Farm in der neuen SharePoint 2016-Farm verwendet wurde.
Unter bestimmten Umständen müssen Sie jedoch möglicherweise eine neue Installation von Workflow-Manager erstellen. Wenn Sie z. B. Workflow-Manager auf ein anderes Windows-Betriebssystem verschieben möchten oder wenn der Back-End-Datenbankserver außer Betrieb genommen wird. Führen Sie in diesen Situationen die Schritte unter Workflow-Manager Notfallwiederherstellung aus, um die neue Workflow-Manager-Installation mithilfe der alten Datenbanken zu erstellen. Stellen Sie sicher, dass Sie die neueste Kopie der Workflow-Manager Datenbanken verwenden.
Hintergrund
Wenn Sie SharePoint Server zusammen mit Workflow-Manager verwenden, zeichnet Workflow-Manager die SharePoint-Websites mit veröffentlichten Workflows auf. Jede Website wird in Workflow-Manager als Bereich dargestellt. Workflow-Manager speichert auch die Workflowdefinitionen, alle Workflowinstanzen und deren Status.
SharePoint speichert den Workflowverlauf und die Workflowaufgabeninformationen für SharePoint-Workflows. Wenn der Workflow status Seite geladen wird, ruft SharePoint zuerst Workflow-Manager auf, um zu sehen, ob der Workflow vorhanden ist. Dazu wird die Workflow-instance-ID verwendet. Anschließend lädt SharePoint die restlichen Workflowinformationen. Wenn die Workflow-instance-ID in Workflow-Manager fehlt oder während der Kommunikation mit Workflow-Manager ein Fehler auftritt, erhalten Sie eine Fehlermeldung.
Upgraden von SharePoint 2013 auf SharePoint 2016 über Workflow Manager
Voraussetzungen
- Installieren Sie das neueste kumulative Update für Workflow-Manager mithilfe des Webplattform-Installers (Web PI).
- Installieren Sie die neueste Version von Workflow-Manager Client auf den SharePoint 2013-Servern, und stellen Sie sicher, dass alle Workflows funktionsfähig sind.
- Installieren Sie die SharePoint 2016-Farm, und aktualisieren Sie alle Dienstanwendungen und Inhaltsdatenbanken.
- Installieren Sie auf allen SharePoint 2016-Farmservern die neueste Version von Workflow-Manager Client mithilfe von Web PI.
Registrieren Workflow-Manager bei SharePoint 2016
Gehen Sie dazu wie folgt vor:
Navigieren Sie in der SharePoint 2013-Farm zu Zentrale Admin>Anwendungsverwaltung>Dienstanwendung verwalten, und löschen Sie dann workflow service Anwendungsproxy.
Führen Sie in der SharePoint 2016-Farm das folgende PowerShell-Cmdlet aus, um SharePoint 2016 mit derselben Workflow-Manager Installation zu koppeln:
Register-SPWorkflowService -SPSite <SharePoint site URL> -WorkflowHostUri <Workflow service endpoint URL> -force
Hinweis
Beachten Sie, dass die Inhaltsdatenbanken, die in der neuen SharePoint 2016-Farm aktualisiert wurden, aus der letzten Sicherung wiederhergestellt werden sollten. Dies trägt dazu bei, Unterschiede und Lücken zwischen Workflow-Manager und den Inhaltsdatenbanken zu vermeiden.
Häufige Probleme, die nach dem Upgrade auftreten können
Problem 1: Website-URL wird geändert
Wenn ihre Website-URL in SharePoint 2016 geändert wird, die Website-ID jedoch unverändert bleibt, müssen Sie einen Workflow von der betroffenen Website mithilfe von SharePoint Designer erneut veröffentlichen.
Problem 2: Workflows werden auf einigen Websites nicht gestartet
Wenn Workflows auf einigen Websites nicht gestartet werden, veröffentlichen Sie die Workflows von der betroffenen Website erneut. Oder führen Sie den Zeitgeberauftrag Aktualisieren des Metadatenfeeds vertrauenswürdiger Sicherheitstokendienste aus.
Problem 3: Workflows schlagen fehl und geben den Fehler "App-Prinzipalberechtigungsinformationen können nicht abgerufen werden" zurück.
Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
- Sie haben SharePoint 2013-Workflows und Workflow-Manager in Ihrer Farm konfiguriert.
- Sie haben websites in der Farm kürzlich mit einer zuvor vorhandenen instance Workflow-Manager verbunden.
In diesem Szenario werden Workflows, die erstellt werden, nachdem Sie eine Verbindung mit der Workflow-Manager Installation hergestellt haben, erfolgreich abgeschlossen. Workflows, die vor dem Herstellen einer Verbindung mit Workflow-Manager erstellt werden, werden jedoch nicht abgeschlossen. Stattdessen bleiben sie hängen, wenn sie versuchen, den Vorgang abzuschließen, oder sie bleiben in einem angehaltenen Zustand. Für Workflows, die angehalten bleiben, erhalten Sie einen HTTP 500-Fehler. Darüber hinaus wird der folgende Eintrag im ULS-Protokoll protokolliert:
App-Prinzipalberechtigungsinformationen können nicht abgerufen werden.
Ursache
Workflow-Manager verfügt bereits über einen Bereich für die Website, auf der die Workflows ausgeführt werden. Da der Bereich einen falschen SPAuthenticationRealm
Wert im ApplicationID
Feld des Bereichs aufweist, ist keine SPAppPrincipal
Klasse für das SPWeb-Objekt vorhanden, das dem ApplicationID
Wert des Bereichs entspricht. Daher schlagen die Workflows fehl und geben eine Fehlermeldung zurück.
Lösung
Um dieses Problem zu beheben, verwenden Sie die folgenden PowerShell-Befehle, um das neue SPAppPrincipal
Objekt zu registrieren. Dies geschieht für das SPWeb
Objekt, dessen ID mit dem ApplicationID
Wert übereinstimmt, der im Bereich des SPWeb
Objekts in Workflow-Manager gespeichert ist.
#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
Weitere Informationen
Führen Sie die folgenden Schritte aus, um den SPAuthenticationRealm
Wert von ApplicationID
abzurufen, der im Bereich gespeichert ist:
Führen Sie die folgende SQL-Abfrage aus:
SELECT * FROM [WFResourceManagementDB].[dbo].[Scopes] WITH (NOLOCK) WHERE Description like '%<WebID>%'
Hinweis
< WebID> ist der Platzhalter für die ID des
SPWeb
Objekts.Klicken Sie im Abfrageergebnis auf den Wert in der
SecuritySettings
Spalte, um den XML-Code auf einer separaten Registerkarte in SQL Server Management Studio zu öffnen.Suchen Sie in der XML-Datei nach dem
ApplicationID
Element, das den Wert enthält. Suchen Sie beispielsweise das folgende Element:<ApplicationId>SPWeb_object_ID@SPAuthenticationRealm</ApplicationId>
Hinweis
Die GUID, die vor dem at-Zeichen (@) angezeigt wird, ist die ID des
SPWeb
Objekts, und die GUID, die nach dem at-Zeichen angezeigt wird, ist derSPAuthenticationRealm
Wert.
Alternativ finden Sie den SPAuthenticationRealm
Wert im ULS-Protokoll, z. B. im folgenden Beispielprotokolleintrag:
Datum/Uhrzeit w3wp.exe (SPWFE01:0x51FC) 0x1298 SharePoint Foundation-Authentifizierungsautorisierung an3eg Medium App-Prinzipalberechtigungsinformationen können nicht abgerufen werden. AppId=i:0i.t|ms.sp.ext|<SPWeb-Objekt-ID>@<SPAuthenticationRealm>
Date/Time w3wp.exe (SPWFE01:0x51FC) 0x1298 SharePoint Foundation General 8nca Medium Application error when access /site/teamsite/teamweb/_vti_bin/client.svc, Error=Object reference not set to an instance of an object. at Microsoft.SharePoint.SPAppRequestContext.EnsureTenantPermissions(SPServiceContext serviceContext, Boolean throwIfAppNotExits, Boolean allowFullReset) at Microsoft.SharePoint.SPAppRequestContext.InitCurrent(HttpContext context) at Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.InitCurrentAppPrincipalToken(HttpContext context) at Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.PostAuthenticateRequestHandler(Object oSender, EventArgs ea) at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)