(0) exportieren Drucken
Alle erweitern

Definieren und Verwenden benutzerdefinierter Codeaktivitäten und -typen in einem Workflow Manager 1.0-Workflow

Workflow-Manager 1.0-Workflows werden mithilfe eines vollständig deklarativen Modells erstellt. Wird jedoch eine auf benutzerdefiniertem Code basierende Aktivität oder ein benutzerdefinierter Datentyp benötigt, können Serveradministratoren diesen benutzerdefinierten Typ den unterstützten Typen mithilfe der in diesem Thema beschriebenen Schritte hinzufügen. Jeder Typ kann explizit hinzugefügt werden. Diese Vorgehensweise wird empfohlen, insbesondere für die Produktion. Alternativ kann der Schutz vor der Ausführung beliebigen Codes deaktiviert werden. Die Auswirkungen sind ähnlich, als wären alle Typen aus allen Assemblys auf dem Server zulässig. Dieser Ansatz kann zwar den Entwicklungsvorgang vereinfachen, wirkt sich jedoch auch auf die Sicherheit aus. Daher eignet er sich normalerweise nicht für die Produktion.

Inhalt dieses Themas

noteHinweis
Dieses Thema bietet eine Übersicht über die Verwendung von Aktivitäten mit benutzerdefiniertem Code in Workflow-Manager 1.0. Den Themenbereich zum Erstellen von Aktivitäten mit benutzerdefiniertem Code finden Sie unter Designing and Implementing Custom Activities und Authoring Workflows, Activities, and Expressions Using Imperative Code. Workflow-Manager 1.0 unterstützt benutzerdefinierte Aktivitäten, die von Activity und CodeActivity erben.

Unterstützen von Aktivitäten mit benutzerdefinierten Code

Workflow-Manager 1.0 ermöglicht Benutzern das Veröffentlichen und Verwenden eigener deklarativer Aktivitäten und deklarativer Workflows. Außerdem wird eine reichhaltige Sammlung von integrierten Workflowaktivitäten bereitgestellt, die in den Aktivitäten und Workflows von Benutzern verwendet werden können. Workflow-Manager 1.0 definiert außerdem eine "vertrauenswürdige Oberfläche", die die Sammlung der unterstützten Typen und Aktivitäten beinhaltet.

noteHinweis
Weitere Informationen zu den integrierten Aktivitäten in Workflow-Manager 1.0 und der vertrauenswürdigen Oberfläche finden Sie unter Workflow Manager 1.0 - Aktivitäten im Überblick und Workflow Manager 1.0 - vertrauenswürdige Oberfläche.

Das Erweitern der Sammlung zulässiger Typen und Aktivitäten besitzt potenziell große Auswirkungen auf die Sicherheit, Leistung, Skalierbarkeit und Verfügbarkeit von Workflow-Manager 1.0 und sollte nur in Betracht gezogen werden, wenn es unbedingt erforderlich ist, beispielsweise, wenn Workflows komplexe Berechnungen ausführen müssen oder eine Datentransformation erforderlich ist, die nur schwierig in einer deklarativen Aktivität erstellt werden kann. Unter diesen Umständen möchten erfahrene Benutzer ggf. eine Aktivität mit benutzerdefiniertem Code verwenden. Der Serveradministrator kann die Sammlung zulässiger Typen so erweitern, dass diese Codeaktivität berücksichtigt wird. Die Voraussetzung hierfür ist, dass der Administrator dieser Codeaktivität vollständig vertraut.

noteHinweis
Aktivitäten, die E/A ausführen, sollten die unterstützten HTTP-Messagingaktivitäten verwenden, um sicherzustellen, dass die Kommunikation im Konsistenzmodell erfolgt. Weitere Informationen finden Sie unter Messaging in Workflow Manager 1.0 und Http Activities.

Zum Erweitern der Sammlung der zulässigen Typen muss ein Administrator die folgenden Schritte ausführen:

  1. Kopieren der Assembly, die den Typ enthält (z. B. eine Aktivität mit benutzerdefiniertem Code), zusammen mit allen abhängigen Dateien in die folgenden beiden Ordner:

    • C:\Programme\Workflow Manager\1.0\Workflow\WFWebRoot\bin

    • C:\Programme\Workflow Manager\1.0\Workflow\Artifacts

  2. Erstellen einer Datei namens AllowedTypes.xml in C:\Programme\Workflow Manager\1.0\Workflow\WFWebRoot\bin.

  3. Bearbeiten von AllowedTypes.xml und Hinzufügen der gewünschten Typen im XML-Element <AllowedTypes> wie im folgenden Beispiel gezeigt.

    <AllowedTypes>
      <Assembly Name="Contoso.DataTransformations">
        <Namespace Name="Contoso.DataTransformations.Activities">
          <Type>DoDomainSpecificCalculation1</Type>
        </Namespace>
      </Assembly>
    
      <Assembly Name="Contoso.StronglyTypedAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
        <Namespace Name="Contoso.FinancialCalculation.Activities">
          <Type> GetPresentValueOfABond</Type>
        </Namespace>
      </Assembly>
    </AllowedTypes>
    
  4. Kopieren von AllowedTypes.xml in den zweiten Ordner: C:\Programme\Workflow Manager\1.0\Workflow\Artifacts

  5. Neustarten des Workflow-Manager 1.0-Servers im nächsten geplanten Wartungsfenster.

noteHinweis
In einer Bereitstellung mit mehreren Servern müssen die oben genannten Schritte auf jedem Server ausgeführt werden.

Nun können die in Schritt 3 hinzugefügten Typen in neu veröffentlichten Aktivitäten und Workflows verwendet werden.

noteHinweis
In Workflow-Manager 1.0 ist der oben beschriebene Ansatz auf Aktivitäten mit benutzerdefiniertem Code eingeschränkt, die aus den Basisklassen Activity oder CodeActivity abgeleitet werden.

Unterstützen benutzerdefinierter Datentypen

Benutzerdefinierte Datentypen können der Sammlung zulässiger Typen ebenfalls hinzugefügt werden. Die gleichen Schritte wie oben beschrieben sollten ausgeführt werden, um die Verwendung des betreffenden Typs in Workflows zu aktivieren. Ggf. müssen der Liste der zulässigen Typen jedoch weitere Aktivitäten hinzugefügt werden, damit auf Eigenschaften dieses benutzerdefinierten Datentyps zugegriffen oder dieser initialisiert werden kann. Eigenschaftenverweise werden von der Ausdrucksübersetzung nicht automatisch verarbeitet. Aus diesem Grund können in diesem Fall keine VB-Ausdrücke verwendet werden. Wenn ein benutzerdefinierter Typ Employee z. B. die Eigenschaften Name und Salary besitzt, und es muss aus einem Workflow auf diese Eigenschaften zugegriffen werden, sollten die Aktivitäten mit benutzerdefiniertem Code GetEmployeeName und GetEmployeeSalary erstellt und der Liste der zulässigen Typen hinzugefügt werden.

Entfernen einer Aktivität mit benutzerdefinierten Code oder eines benutzerdefinierten Datentyps

Sie müssen die folgenden Schritte ausführen, um einen zuvor hinzugefügten Typ aus der Liste der zulässigen Typen zu entfernen:

  1. Bearbeiten Sie AllowedTypes.xml in zwei Verzeichnissen (C:\Programme\Workflow Manager\1.0\Workflow\WFWebRoot\bin und C:\Programme\Workflow Manager\1.0\Workflow\Artifacts) auf jedem der Server, und entfernen Sie den Verweis auf die Typen, die aus der Liste der zulässigen Typen entfernt werden sollen.

  2. Beenden Sie den WorkflowServiceBackend-Dienst auf allen Servern.

  3. Beenden Sie den WorkflowMgmtPool-Anwendungspool auf allen Servern – der Workflow-Manager 1.0-Server wird auf diese Weise als nicht verfügbar angezeigt. Dieser Vorgang sollte daher in einem Wartungsfenster ausgeführt werden.

  4. Entfernen Sie alle benutzerdefinierten Dateien auf allen Servern, die zuvor in C:\Programme\Workflow Manager\1.0\Workflow\WFWebRoot\bin und C:\Programme\Workflow Manager\1.0\Workflow\Artifacts kopiert wurden.

  5. Starten Sie den WorkflowMgmtPool-Anwendungspool auf allen Servern.

  6. Starten Sie den WorkflowServiceBackend-Dienst auf allen Servern.

  7. Entfernen Sie alle deklarativen Aktivitäten und Workflows, die den entfernten Typ verwendet haben, damit sie nicht mehr darauf verweisen, oder veröffentlichen Sie eine neue Version dieser Aktivitäten und Workflows, die nicht mehr auf die entfernten Typen verweist.

Unterstützen benutzerdefinierten Codes durch Deaktivieren des Schutzes vor der Ausführung beliebigen Codes

Workflow-Manager 1.0 ermöglicht einem Administrator das Deaktivieren des Schutzes vor der Ausführung beliebigen Codes. Dies kann eine bequeme Option bei der Entwicklung von Lösungen sein, die benutzerdefinierten Code verwenden, um den Aufwand zu vermeiden, der im Lauf der Zeit durch das Hinzufügen benötigter Typen zur Liste der zulässigen Typen entsteht. Wenn der Schutz vor der Ausführung beliebigen Codes deaktiviert ist, sind die Auswirkungen ähnlich, als würden alle Typen aus allen Assemblys auf dem Server der Liste der zulässigen Typen hinzugefügt. Diese Vorgehensweise bringt entsprechende Sicherheitsauswirkungen mit sich und sollte nur verwendet werden, wenn Workflow-Manager 1.0 so konfiguriert ist, dass nur vertrauenswürdige Benutzer berechtigt sind, Workflowaktivitäten hochzuladen oder von Workflow-Manager 1.0 verwendete Datenbanken zu ändern.

So deaktivieren sie den Schutz vor der Ausführung beliebigen Codes

Zum Deaktivieren des Schutzes vor der Ausführung beliebigen Codes in Workflow-Manager 1.0 muss ein Administrator die folgenden Schritte ausführen.

  1. Öffnen des Workflow PowerShell-Befehlsfensters.

    noteHinweis
    Anweisungen zum Öffnen des PowerShell-Befehlsfensters für den Workflow finden Sie unter Konfigurieren von Workflow Manager 1.0 mithilfe der PowerShell.

  2. Ausführen des Cmdlets Set-WFServiceConfiguration mit den folgenden Parametern:

    • Geben Sie für ServiceUri den URI des Workflowservers an. Beispiel: https://MeinServer.MeineDomäne.MeinUnternehmen.com:12290.

    • Geben Sie für Name die Option WorkflowServiceAllowUnsafeTypes an.

    • Geben Sie für Value den Wert true an.

So aktivieren sie den Schutz vor der Ausführung beliebigen Codes erneut

Zum erneuten Aktivieren des Schutzes vor der Ausführung beliebigen Codes in Workflow-Manager 1.0 Server muss ein Administrator die folgenden Schritte ausführen.

  1. Öffnen des Workflow PowerShell-Befehlsfensters.

    noteHinweis
    Anweisungen zum Öffnen des PowerShell-Befehlsfensters für den Workflow finden Sie unter Konfigurieren von Workflow Manager 1.0 mithilfe der PowerShell.

  2. Ausführen des Cmdlets Set-WFServiceConfiguration mit den folgenden Parametern:

    • Geben Sie für ServiceUri den URI des Workflowservers an. Beispiel: https://MeinServer.MeineDomäne.MeinUnternehmen.com:12290.

    • Geben Sie für Name die Option WorkflowServiceAllowUnsafeTypes an.

    • Geben Sie für Value den Wert false an.


Workflow Manager 1.0 MSDN Community Forum


Erstellungsdatum:

2013-10-23

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft