Die Verwendung vom Workflow Manager (WFMGR) ist wohl eine der größten Neuerungen in SharePoint 2013. Workflows spielen generell eine wichtige Rolle in SharePoint Umgebungen. Deshalb wurde die Engine für die Workflows von Microsoft grundlegend überarbeitet. Es besteht natürlich weiterhin die Möglichkeit, Workflows mit der bereits bekannten Engine aus SharePoint 2010 auch in SharePoint 2013 weiter zu nutzen. Der Workflow Manager ist als komplett eigenständiger Dienst konzipiert. Die zugrunde liegende Technik unterscheidet sich dabei grundlegend. Beim Workflow Manager wird als Basis die Windows Workflow Foundation aus dem .NET Framework 4.5 genutzt. Die bisherige Plattform basiert dagegen auf der Windows Workflow Foundation 3. Weiterhin ist die Nutzung vom Workflow Manager in Verbindung mit SharePoint 2013 Foundation nicht möglich.
Soviel zur Einführung in das Thema soll erst einmal genügen. In diesem Artikel möchte ich euch zeigen, wie man den Workflow Manager auf einem separaten Windows Server 2012 R2 installiert und für die Nutzung mit SharePoint 2013 konfiguriert. Generell kann man den Workflow Manager auch auf einem SharePoint 2013 Frontend Server installieren, allerdings empfehle ich immer einen separaten Server hierfür zu verwenden. Dies hat sich bzgl. Performance, Stabilität und Skalierung in der Vergangenheit immer sehr gut bewährt.
Beim Einsatz eines Windows Server 2012 R2 muss vor dem Beginn der eigentlichen Installation das .NET 3.5 Feature installiert werden. Das funktioniert ganz einfach über den Server-Manager. Zu beachten ist dabei nur, dass für die Installation ein alternativer Quellpfad angegeben wird.
Nachdem das .NET 3.5 Feature installiert wurde, kann mit der eigentlichen Installation vom Workflow Manager begonnen werden. Die Installationsdateien für den WFMGR besorgt man sich am einfachsten über den Web Platform Installer (WebPI). Der Web Platform Installer kann hier heruntergeladen werden. Für dieses Beispiel habe ich den WebPI 5.0 in der x64 Variante genutzt. Nachdem der WebPI installiert ist, kann man die notwendigen Dateien für die Installation vom Workflow Manager herunterladen (Offline-Installation). Sollte man den Workflow Manager öfters installieren, kann es sich durchaus lohnen, die heruntergeladenen Dateien wiederzuverwenden, anstatt immer wieder einen neuen Download durchzuführen. Der Download wird mit folgendem Befehl angestoßen:
webpicmd /offline /Products:WorkflowManagerRefresh /Path:C:\WorkflowManagerOfflineFiles
Wichtig ist dabei nur, dass das Produkt Workflow Manager Refresh genutzt wird, weil man dadurch gleich die momentan aktuellste Version vom Workflow Manager bekommt und ein aufwändiges Patchen entfällt.
Die Installation vom Workflow Manager wird dann über diesen Befehl gestartet:
webpicmd /Install /Products:WorkflowManagerRefresh /XML:C:\WorkflowManagerOfflineFiles\feeds\latest\webproductlist.xml
Nach der Installation wird dann automatisch von der Installationsroutine geprüft, ob alle notwendigen Komponenten erfolgreich installiert wurden.
Danach geht es an die eigentliche Konfiguration vom Workflow Manager.
Um eine möglichst optimale Konfiguration vornehmen zu können, wählt man den Punkt Configure Workflow Manager with Custom Settings
. Als Erstes konfiguriert man die Datenbankeinstellungen für den Workflow Manager. Bei der SQL Server Instanz gibt man am Besten einen SQL-Alias (Stichwort: cliconfg.exe
) an und nicht den Server direkt. Das vereinfacht später die genutzten Datenbanken in eine andere SQL Server Instanz zu verschieben.
Danach kommt man zur Konfiguration vom zugehörigen Dienstkonto. Wie eigentlich immer empfiehlt sich für den Workflow Manager ein separates Dienstkonto zu verwenden.
Weiterhin kann ein Zertifikat für die Kommunikation über HTTPS konfiguriert werden. Entweder nutzt man an dieser Stelle ein bereits vorhandenes Zertifikat (oder auch mehrere), oder lässt sich ein selbst-signiertes Zertifikat automatisch generieren.
Generell sollte man unverschlüsselte Kommunikation über HTTP nicht nutzen. Dies macht nur dann Sinn, wenn man sich in einer Entwicklungsumgebung oder Ähnlichem befindet. In diesem Artikel nutzten wir allerdings ausschließlich HTTPS, was auch mit nur geringem Aufwand in Entwicklungsumgebungen möglich ist. Deshalb aktivieren die Option HTTP explizit nicht.
Auf der nächsten Konfigurationsseite wird dann der zugehörige Service Bus konfiguriert. Auch hier werden zuerst die notwendigen Datenbanken konfiguriert. Auch hier gilt es wieder, einen SQL-Alias zu nutzen.
Das Spiel mit den Zertifikaten habe ich bereits bei der Konfiguration vom WFMGR beschrieben. Dies funktioniert beim Service Bus analog.
Bevor die Einstellungen auch vorgenommen werden, sieht man noch eine Übersicht über die gesamte Konfiguration.
Wenn wir alle Punkte wie bisher beschrieben auch ganz genau ausgeführt haben, sollte die Konfiguration erfolgreich ausgeführt werden.
Danach kann die Funktionalität vom Workflow Manager ganz einfach über einen Browser getestet werden. Beim Aufruf der URL https://<HostName>:12290
sollte folgende Seite angezeigt werden.
Dabei ist allerdings zu beachten, dass das Ergebnis nur angezeigt wird, wenn der aufrufende Benutzer auch in der Administratoren-Gruppe vom Workflow Manager ist. Standardmäßig sind das die Benutzer, die sich in der lokalen Administrator-Gruppe des Servers (wo der WFMGR installiert ist) befinden. Sollte die Benutzerkontensteuerung aktiviert sein, muss der Browser ggf. explizit als Administrator gestartet werden.
Jetzt möchte ich euch noch zeigen wie SharePoint mit dem Workflow Manager „verbunden“ werden muss. Wie bereits vorher geschrieben, nutzt diese Installation vom Workflow Manager ausschließlich HTTPS. Deshalb müssen wir zuerst das automatisch generierte Zertifikat vom Workflow Manager exportieren.
Wichtig beim Exportieren des Zertifikats ist, dass der private Schlüssel des Zertifikats nicht exportiert wird. Das Ergebnis ist eine .cer-Datei. Danach muss dieses Zertifikat dem SharePoint als vertrauenswürdig hinterlegt werden, nachdem es sich um ein selbst-signiertes Zertifikat handelt. Dies geschieht ganz einfach über die Zentraladministration des SharePoints.
Nachdem das Zertifikat nun als vertrauenswürdig für den SharePoint gilt, kann der Workflow Manager mit der SharePoint Farm „verbunden“ werden. Dies geschieht über die SharePoint Management Shell mit folgendem Befehl:
Register-SPWorkflowService -SPSite https://my-sharepoint -WorkflowHostUri https://workflow-manager:12290 -ScopeName SP1
Als Parameter SPSite
kann man eine beliebig bestehende Seite im SharePoint angegeben werden. Es reicht aus, wenn man diesen Befehl einmal pro Webanwendung ausführt. Es ist nicht nötig, dies für jede Site Collection einzeln auszuführen. Der Parameter ScopeName
ist sehr nützlich, wenn man mehrere SharePoint Farmen mit nur einem WFMGR nutzen möchte. Dies ist für den WFMGR kein Problem, allerdings muss jede Farm einen eindeutigen Scope Namen erhalten.
Weiterhin muss noch eine Konfiguration vorgenommen werden, sollte der SharePoint nicht über HTTPS erreichbar sein. Dies empfiehlt sich wieder nur, wenn es es sich dabei um kein produktives System handelt. Damit die Authentifizierung auch über HTTP klappt, müssen folgende Befehle ausgeführt werden:
$config = (Get-SPSecurityTokenServiceConfig) $config.AllowOAuthOverHttp = $true $config.AllowMetadataOverHttp = $true $config.Update()
Danach ist der Workflow Manager bereit zum Einsatz.
In diesem Sinne, Happy SharePointing…
Super-Anleitung! Vielen Dank!
Nur läuft bei mir jetzt folgende Schleife ab: Der SharePoint Designer meldet, dass „Lokale Caches werden generiert. Lokale Caches werden aus den heruntergeladenen Metadaten erstellt. Danach: Serverseitige Aktivitäten werden aktualisiert. Sie müssen SharePoint Designer neu starten, damit sie die aktualisierte Version der Aktivitäten verwenden können.“ Nach dem entsprechenden Neustart laufen diese beiden Dialogboxen immer wieder ab. Großes ? Danke für eine Antwort!
Hallo Rolf,
hast Du mal probiert den SharePoint Designer auf einem anderen Rechner zu nutzen? Besteht das Problem dort auch?
Als Erstes würde ich versuchen, den Cache vom SharePoint Designer zu löschen.
Grüße
Frank
Hallo Frank,
vielen Dank für Deine schnelle Antwort. (Auf anderen Rechnern läuft alles recht gut. Allerdings Office365-Umgebung!)
Die Probleme habe ich in einer Hyper-V-Umgebung (Windows Server 2012 R2 ….).
Habe erst mal die State Service Installation geprüft und aktualisiert ( s. http://technet.microsoft.com/en-us/library/ee704548.aspx ) und dann die Cache-Bereiche alle gelöscht (s. a. http://blah.winsmarts.com/2015-3-Clear_SharePoint_Designer_2013_Cache.aspx). Jetzt läuft schon mal der Workflow 2010, der vorher ein Rendering-Problem hatte.
Leider bleibt das Problem für den 2013 WF bestehen.
Viele Grüße, Rolf
Hallo Rolf,
hier gibt es auch noch einen Thread zu Deinem Problem: https://community.office365.com/en-us/f/154/t/409588?pi14985
Vielleicht findest Du dort noch ein paar andere Ansätze um das Problem zu lösen.
Grüße
Frank
Hallo Frank,
herzlichen Dank für diesen Blog.
Ich habe alles so bearbeitet wie hier beschrieben, Workflow 2013 ist jetzt auch endlich vorhanden *freu*
Allerdings: wenn ich ein Workflow erstelle und es veröffentlichen möchte, habe ich „Fehler beim Kompilieren“
Im Event Viewer heißt es :
An operation failed because the following certificate has validation errors:
Subject Name: CN=xxx.xxxx.xxx
Issuer Name: CN=xxx.xxxx.xxx
Thumbprint: 123456789123456789123456789123456987456
Errors:
SSL policy errors have been encountered. Error code ‚0x2‘..
Beim Zertifikat muss ich doch nichts weiter vornehmen??
Vielen Dank und schöne Grüße
An
Hallo An,
klingt nach einem Problem mit dem Zertifikat. 🙂
Das Zertifikat vom WFM wurde erfolgreich auf dem SharePoint hinterlegt? Ist das ein selbstsigniertes Zertifikat oder was für eines hast Du für die Konfiguration genutzt?
Viele Grüße
Frank
Hallo Frank,
danke für deine superschnelle Reaktion.
1. Exportieren das vom Workflow Manager automatisch generierte Zertifikat ohne privaten Schlüssel auf C-Laufwerk war erfolgreich
2. SharePoint Zentraladministration > Sicherheit > Vertrauensstellung verwalten > Neu > „Name“ und „Zertifikat der Stammzertifizierungsstelle“ ausgefüllt und „OK“ geklickt
3. Arbeit am SharePoint Designer 2013 mit Erstellung eines Workflows
4. Fehler bei der Kompilierung des Workflows
System.Net.WebException: Die zugrunde liegende Verbindung wurde geschlossen: Für den geschützten SSL/TLS-Kanal konnte keine Vertrauensstellung hergestellt werden.. —> System.Security.Authentication.AuthenticationException: Das Remotezertifikat ist laut Validierungsverfahren ungültig.
bei System.Net.TlsStream.EndWrite(IAsyncResult asyncResult)
bei System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)
— Ende der internen Ausnahmestapelüberwachung —
bei Microsoft.
Habe ich einen Schritt zwischen 1. und 2. vergessen?
Zitat: Danach muss dieses Zertifikat dem SharePoint als vertrauenswürdig hinterlegt werden, nachdem es sich um ein selbst-signiertes Zertifikat handelt
selbst-signiertes Zertifikat??? Muss ich das automatisch generierte Zertifikat noch selbst-signieren???
Also, WFM generiert ja insgesamt 4 Zertifikate, so wie auch in der Abbildung von dir. Exportiert habe ich dann den von dir gelb gekennzeichnetes Zertifikat (also der bei mir auch so ist). Das Thumbprint in der Fehlermeldung kann ich auch diesem Zertifikat zuordnen. Dem SharePoint übergebe ich nur dieses eine Zertifikat?
Viele Dank und schöne Grüße
An
Hallo An,
dass automatisch generierte Zertifikat ist selbst-signiert, da musst Du nichts weiter machen.
Ansonsten sieht Deine Beschreibung auch gut aus.
Versuch doch mal bitte das exportierte WFM Zertifikat auf dem SharePoint in den Windows Zertifikatspeicher abzulegen. Einfach das kopierte Zertifikat doppelklicken und dann als Speicher die Vertrauenswürdigen Stammzertifizierungsstellen auswählen.
Viele Grüße
Frank
Hallo Frank,
leider ist dies auch ohne Erfolg gescheitert.
Liegt es daran, dass ich einen SingleFarmServer habe? Da ich noch in der Testphase von SharePoint Server 2016 bin habe ich alles, samt WFM auf einen Server installiert.
Nach dieser Anleitung bin ich vorgegangen http://social.technet.microsoft.com/wiki/contents/articles/34451.sharepoint-2016-step-by-step-guide-to-add-workflow-manager-certificate-into-sharepoint-trust.aspx
natürlich ergänzend zu deiner Anleitung.
Ich sitze schon einige Zeit an diesem Issue und bin recht am Zweifeln….
Hast du noch eine Idee für mich oder Sites, die ich mir eineignen kann?
Viele Grüße
An
sollte wohl auch so funktionieren.
habe dies abgearbeitet https://technet.microsoft.com/en-us/library/jj658589.aspx
ohne erfolg.
Hallo An,
dann wird es langsam schwierig mit einer Ferndiagnose.:12290 im Browser aufrufst, bekommst Du dann auch einen Zertifikatsfehler?
Wenn Du die URL https://
Wenn es sich um eine Testumgebung handelt, könntest Du auch mal probieren den WFM über HTTP einzubinden.
Viele Grüße
Frank
[…] Deutsche Anleitung zur Installation (Franks Blog) […]