Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Oryginalny numer KB: 4073758
Podsumowanie
Po uaktualnieniu programu Microsoft SharePoint 2013 do programu Microsoft SharePoint 2016 nie trzeba tworzyć nowej instalacji Menedżer przepływów pracy. Możesz użyć tej samej instalacji, która była używana przez farmę programu SharePoint 2013 w nowej farmie programu SharePoint 2016.
Jednak w pewnych okolicznościach może być konieczne utworzenie nowej instalacji Menedżer przepływów pracy. Jeśli na przykład chcesz przenieść Menedżer przepływów pracy do innego systemu operacyjnego Windows lub jeśli serwer bazy danych zaplecza zostanie zlikwidowany. W takich sytuacjach wykonaj kroki opisane w Menedżer przepływów pracy Disaster Recovery, aby utworzyć nową instalację Menedżer przepływów pracy przy użyciu starych baz danych. Upewnij się, że używasz najnowszej kopii Menedżer przepływów pracy baz danych.
Tło
W przypadku korzystania z programu SharePoint Server razem z Menedżer przepływów pracy Menedżer przepływów pracy przechowuje rekord witryn programu SharePoint, które mają opublikowane przepływy pracy. Każda witryna jest reprezentowana w Menedżer przepływów pracy jako zakres. Menedżer przepływów pracy przechowuje również definicje przepływu pracy, wszystkie wystąpienia przepływu pracy i ich stany.
Program SharePoint przechowuje informacje o historii przepływu pracy i zadaniach przepływu pracy dla przepływów pracy programu SharePoint. Po załadowaniu strony stanu przepływu pracy program SharePoint najpierw wywołuje Menedżer przepływów pracy, aby sprawdzić, czy przepływ pracy istnieje. W tym celu jest używany identyfikator wystąpienia przepływu pracy. Następnie program SharePoint ładuje pozostałe informacje o przepływie pracy. Jeśli w Menedżer przepływów pracy brakuje identyfikatora wystąpienia przepływu pracy lub występuje błąd podczas komunikacji z Menedżer przepływów pracy, zostanie wyświetlony komunikat o błędzie.
Uaktualnianie programu SharePoint 2013 do programu SharePoint 2016 za pośrednictwem Menedżer przepływów pracy
Wymagania wstępne
- Zainstaluj najnowszą aktualizację zbiorczą dla Menedżer przepływów pracy przy użyciu instalatora platformy internetowej (Web PI).
- Zainstaluj najnowszą wersję klienta Menedżer przepływów pracy na serwerach programu SharePoint 2013 i upewnij się, że wszystkie przepływy pracy działają.
- Zainstaluj farmę programu SharePoint 2016 i uaktualnij wszystkie aplikacje usług i bazy danych zawartości.
- Na wszystkich serwerach farmy programu SharePoint 2016 zainstaluj najnowszą wersję programu Menedżer przepływów pracy Client przy użyciu internetowego interfejsu API.
Rejestrowanie Menedżer przepływów pracy w programie SharePoint 2016
Aby to zrobić, wykonaj następujące kroki.
W farmie programu SharePoint 2013 przejdź do pozycji Central Administracja>Zarządzanie aplikacjamiZarządzanie aplikacjami>usługi, a następnie usuń serwer proxy aplikacji usługi przepływu pracy.
W farmie programu SharePoint 2016 uruchom następujące polecenie cmdlet programu PowerShell, aby sparować program SharePoint 2016 z tą samą instalacją Menedżer przepływów pracy:
Register-SPWorkflowService -SPSite <SharePoint site URL> -WorkflowHostUri <Workflow service endpoint URL> -force
Uwaga
Należy pamiętać, że bazy danych zawartości uaktualnione w nowej farmie programu SharePoint 2016 powinny zostać przywrócone z najnowszej kopii zapasowej. Pomaga to zapobiegać różnicom i przerwom między Menedżer przepływów pracy a bazami danych zawartości.
Typowe problemy, które mogą wystąpić po uaktualnieniu
Problem 1. Adres URL witryny został zmieniony
Jeśli adres URL witryny został zmieniony w programie SharePoint 2016, ale identyfikator witryny pozostaje taki sam, musisz ponownie opublikować przepływ pracy z witryny, której dotyczy problem, przy użyciu programu SharePoint Projektant.
Problem 2. Przepływy pracy nie są uruchamiane w niektórych witrynach
Jeśli przepływy pracy nie są uruchamiane w niektórych witrynach, opublikuj ponownie przepływy pracy z witryny, której dotyczy problem. Możesz też uruchomić zadanie czasomierza źródła metadanych usługi Refresh Trusted Security Token Services .
Problem 3. Przepływy pracy nie powiodły się i zwracają błąd "Nie można uzyskać informacji o uprawnieniach jednostki aplikacji"
Symptomy
Rozpatrzmy następujący scenariusz:
- Masz przepływy pracy programu SharePoint 2013 i Menedżer przepływów pracy skonfigurowane w farmie.
- Ostatnio połączono lokacje w farmie z istniejącym wcześniej wystąpieniem Menedżer przepływów pracy.
W tym scenariuszu przepływy pracy utworzone po nawiązaniu połączenia z Menedżer przepływów pracy instalacji zakończą się pomyślnie. Jednak przepływy pracy utworzone przed nawiązaniem połączenia z Menedżer przepływów pracy nie kończą się. Zamiast tego utkną, gdy próbują zakończyć lub pozostają w stanie zawieszenia. W przypadku przepływów pracy, które pozostają zawieszone, zostanie wyświetlony błąd HTTP 500. Ponadto w dzienniku ULS jest rejestrowany następujący wpis:
Nie można uzyskać informacji o uprawnieniach jednostki aplikacji.
Przyczyna
Menedżer przepływów pracy ma już zakres witryny, w której są uruchomione przepływy pracy. Ponieważ zakres ma nieprawidłową SPAuthenticationRealm
wartość w ApplicationID
polu zakresu, żadna klasa nie SPAppPrincipal
istnieje w obiekcie SPWeb zgodnym ApplicationID
z wartością zakresu. W związku z tym przepływy pracy nie powiodły się i zwraca komunikat o błędzie.
Rozwiązanie
Aby rozwiązać ten problem, użyj następujących poleceń programu PowerShell, aby zarejestrować nowy SPAppPrincipal
obiekt. Można to zrobić w obiekcieSPWeb
, którego identyfikator jest zgodny z wartością ApplicationID
przechowywaną w zakresie obiektu SPWeb
w Menedżer przepływów pracy.
#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
Więcej informacji
Aby uzyskać SPAuthenticationRealm
wartość przechowywaną ApplicationID
w zakresie, wykonaj następujące kroki:
Uruchom następujące zapytanie SQL:
SELECT * FROM [WFResourceManagementDB].[dbo].[Scopes] WITH (NOLOCK) WHERE Description like '%<WebID>%'
Uwaga
< Identyfikator WebID> jest symbolem zastępczym identyfikatora obiektu
SPWeb
.W wyniku zapytania kliknij wartość w kolumnie
SecuritySettings
, aby otworzyć plik XML na osobnej karcie w SQL Server Management Studio.W pliku XML znajdź
ApplicationID
element zawierający wartość. Na przykład znajdź następujący element:<ApplicationId>SPWeb_object_ID@SPAuthenticationRealm</ApplicationId>
Uwaga
Identyfikator GUID wyświetlany przed znakiem at (@) to identyfikator obiektu
SPWeb
, a identyfikator GUID wyświetlany po znaku at jest wartościąSPAuthenticationRealm
.
Alternatywnie możesz znaleźć wartość w dzienniku SPAuthenticationRealm
ULS, na przykład w następującym przykładowym wpisie dziennika:
w3wp.exe daty/godziny (SPWFE01:0x51FC) 0x1298 autoryzacji uwierzytelniania programu SharePoint Foundation an3eg Medium Nie można uzyskać informacji o uprawnieniach jednostki aplikacji. AppId=i:0i.t|ms.sp.ext|<SPWeb object ID>@<SPAuthenticationRealm>
w3wp.exe daty/godziny (SPWFE01:0x51FC) 0x1298 błąd 8nca średniej aplikacji programu SharePoint Foundation podczas uzyskiwania dostępu do /site/teamsite/teamweb/_vti_bin/client.svc, Error=Odwołanie do obiektu nie jest ustawione na wystąpienie obiektu. at Microsoft.SharePoint.SPAppRequestContext.EnsureTenantPermissions(SPServiceContext serviceContext, Boolean throwIfAppNotExits, Boolean allowFullReset) at Microsoft.SharePoint.SPAppRequestContext.InitCurrent(HttpContext context) at Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.InitCurrentAppPrincipalToken(Kontekst HttpContext) w witrynie 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)