Vorgehensweise: Zugreifen auf einen Dienst aus einer Workflowanwendung

In diesem Thema wird beschrieben, wie Sie einen Workflowdienst in einer Workflowkonsolenanwendung aufrufen. Dies hängt vom Abschluss des Themas Vorgehensweise: Erstellen eines Workflowdiensts mit Messagingaktivitäten ab. 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 WCF-Dienste (Windows Communication Foundation) aus einer Workflowanwendung aufzurufen.

Erstellen eines Workflowkonsolen-Anwendungsprojekts

  1. Starten Sie Visual Studio 2012.

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

    Add New Project Dialog

    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 der Browser zeigt die WCF-Hilfeseite an. Merken Sie sich den URI für diese Seite, da Sie diesen im nächsten Schritt verwenden.

    Browser displaying WCF help page and URI

  6. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt MyWFClient, und wählen Sie Hinzufügen>Dienstverweis aus. Klicken Sie auf die Schaltfläche Ermitteln, um die aktuelle Projektmappe nach Diensten zu durchsuchen. 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.

    Add Service Reference Dialog

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

    Add Service Reference Notification dialog

    Klicken Sie auf OK, um das Dialogfeld zu schließen. Drücken Sie dann STRG+UMSCHALT+B, 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.

    Echo activity in the 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. Weisen Sie der Variablen einen Standardwert von "Hello, world" sowie eine Zeichenfolgenvariable namens outString zu, wie im folgenden Diagramm dargestellt.

    Adding an inString variable

  9. Ziehen Sie eine Echo-Aktivität auf das Sequence-Objekt. Binden Sie das inMsg-Argument im Eigenschaftenfenster an die inString-Variable und das outMsg-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.

    Binding the arguments to variables

  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.

    The complete client workflow

  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.

    Startup projects options

  12. Drücken Sie STRG+F5, um sowohl den Dienst als auch den Client zu starten. Der ASP.NET Development Server hostet den Dienst, der Browser 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