Udostępnij za pośrednictwem


Uaktualnianie programu SharePoint 2013 do programu SharePoint 2016 za pośrednictwem Menedżer przepływów pracy

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.

  1. 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.

  2. 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:

  1. 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 .

  2. W wyniku zapytania kliknij wartość w kolumnieSecuritySettings, aby otworzyć plik XML na osobnej karcie w SQL Server Management Studio.

  3. 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)