Vorgehensweise: Zugreifen auf einen Dienst aus einer Workflowanwendung

Dieses Thema gilt für Windows Workflow Foundation 4.

In diesem Thema wird beschrieben, wie Sie einen Workflowdienst in einer Workflowkonsolenanwendung aufrufen. Das Thema baut auf dem Thema Vorgehensweise: Erstellen eines Workflowdiensts mit Messagingaktivitäten auf, das vorher abgeschlossen werden muss. Obwohl in diesem Thema beschrieben wird, wie Sie einen Workflowdienst aus einer Workflowanwendung aufrufen, können Sie die gleichen Methoden auch verwenden, um beliebige andere Windows Communication Foundation (WCF)-Dienste aus einer Workflowanwendung aufzurufen.

Erstellen eines Workflowkonsolen-Anwendungsprojekts

  1. Starten Sie Visual Studio 2010.

  2. Laden Sie das MyWFService-Projekt, das Sie im Thema Vorgehensweise: Erstellen eines Workflowdiensts mit Messagingaktivitäten erstellt haben.

  3. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe MyWFService, und wählen Sie dann Hinzufügen und Neues Projekt aus. Wählen Sie unter Installierte Vorlagen die Option Workflow und aus der Liste der Projekttypen die Option Konsolenanwendung für Workflows aus. Geben Sie dem Projekt den Namen "MyWFClient", und verwenden Sie wie in der folgenden Abbildung gezeigt den Standardspeicherort.

    Dialogfeld "Neues Projekt hinzufügen"

    Klicken Sie auf die Schaltfläche OK, um das Dialogfeld Neues Projekt hinzufügen zu schließen.

  4. Nachdem das Projekt erstellt wurde, wird die Datei "Workflow1.xaml" im Designer geöffnet. Klicken Sie auf die Registerkarte Toolbox, um die Toolbox zu öffnen, falls diese nicht bereits geöffnet ist. Klicken Sie anschließend auf das Pinsymbol, damit das Fenster geöffnet bleibt.

  5. Drücken Sie STRG+F5, um den Dienst zu erstellen und zu starten. Wie zuvor auch, wird der ASP.NET Development Server gestartet, und Internet Explorer zeigt die WCF-Hilfeseite an. Merken Sie sich den URI für diese Seite, da Sie diesen im nächsten Schritt verwenden.

    Anzeige der WCF-Hilfeseite und URI in IE

  6. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt MyWFClient, und wählen Sie Dienstverweis hinzufügen aus. Klicken Sie auf die Schaltfläche Ermitteln, um die aktuelle Projektmappe nach Diensten zu suchen. Klicken Sie in der Liste "Dienste" auf das Dreieck neben der Datei "Service1.xamlx". Klicken Sie auf das Dreieck neben "Service1", um die vom Dienst "Service1" implementierten Verträge aufzuführen. Erweitern Sie in der Liste Dienste den Knoten Service1. Der Echo-Vorgang wird wie in der folgenden Abbildung dargestellt in der Liste Vorgänge angezeigt.

    Dialogfeld "Dienstverweis hinzufügen"

    Behalten Sie den Standardnamespace bei, und klicken Sie auf OK, um das Dialogfeld Dienstverweis hinzufügen zu schließen. Das folgende Dialogfeld wird angezeigt.

    Das Benachrichtigungsdialogfeld "Dienstverweis hinzufügen"

    Klicken Sie auf OK, um das Dialogfeld zu schließen. Drücken Sie anschließend F6, um die Projektmappe zu erstellen. Beachten Sie, dass der Toolbox ein neuer Abschnitt mit dem Namen MyWFClient.ServiceReference1.Activities hinzugefügt wurde. Erweitern Sie diesen Abschnitt, und beachten Sie die Echo-Aktivität, die wie in der folgenden Abbildung dargestellt hinzugefügt wurde.

    Echoaktivität in der Toolbox

  7. Ziehen Sie eine Sequence-Aktivität auf die Designeroberfläche. Diese befindet sich in der Toolbox im Abschnitt Ablaufsteuerung.

  8. Klicken Sie bei aktivierter Sequence-Aktivität auf den Link Variablen, und fügen Sie eine Zeichenfolgenvariable mit dem Namen inString hinzu. Geben Sie der Variable den Standardwert "Hello, world", und fügen Sie ihr die Zeichenfolgenvariable mit dem Namen outString hinzu. Dies ist im folgenden Diagramm dargestellt.

    Hinzufügen einer Variable

  9. Ziehen Sie eine Echo-Aktivität auf das Sequence-Objekt. Binden Sie das "_string"-Argument im Eigenschaftenfenster an die inString-Variable und das out_string-Argument an die "outString"-Variable, wie in der folgenden Abbildung dargestellt. Dadurch wird der Wert der inString-Variable an den Vorgang übergeben und anschließend der Rückgabewert in die outString-Variable eingefügt.

    Binden von Argumenten an Variablen

  10. Legen Sie eine WriteLine-Aktivität per Drag & Drop unter der Echo-Aktivität ab, um die vom Dienstaufruf zurückgegebene Zeichenfolge anzuzeigen. Die WriteLine-Aktivität befindet sich in der Toolbox im Knoten Primitive. Binden Sie das Text-Argument der WriteLine-Aktivität an die outString-Variable, indem Sie in das Textfeld der WriteLine-Aktivität den Text outString eingeben. Der Workflow sollte jetzt wie die folgende Abbildung aussehen.

    Der vollständige Clientworkflow

  11. Klicken Sie mit der rechten Maustaste auf die Projektmappe "MyWFService", und wählen Sie Startprojekte festlegen... aus. Aktivieren Sie das Optionsfeld Mehrere Startprojekte, und wählen Sie in der Spalte Aktion für jedes Projekt Start aus. Dies ist in der folgenden Abbildung dargestellt.

    Optionen für Startprojekte

  12. Drücken Sie STRG+F5, um sowohl den Dienst als auch den Client zu starten. Der ASP.NET Development Server hostet den Dienst, Internet Explorer zeigt die WCF-Hilfeseite an, und die Clientworkflowanwendung wird in einem Konsolenfenster gestartet und zeigt die vom Dienst zurückgegebene Zeichenfolge ("Hello, world") an.

Siehe auch

Aufgaben

Vorgehensweise: Erstellen eines Workflowdiensts mit Messagingaktivitäten

Weitere Ressourcen

Workflowdienste