Procedure: Een werkstroomservice maken met berichtenactiviteiten
In dit onderwerp wordt beschreven hoe u een eenvoudige werkstroomservice maakt met behulp van berichtenactiviteiten. Dit onderwerp is gericht op de mechanica van het maken van een werkstroomservice waarbij de service uitsluitend uit berichtenactiviteiten bestaat. In een echte service bevat de werkstroom veel andere activiteiten. De service implementeert één bewerking met de naam Echo, die een tekenreeks accepteert en de tekenreeks retourneert naar de aanroeper. Dit onderwerp is de eerste in een reeks van twee onderwerpen. Het volgende onderwerp Procedure: Toegang tot een service vanuit een werkstroomtoepassing beschrijft hoe u een werkstroomtoepassing maakt die de service die in dit onderwerp is gemaakt, kan aanroepen.
Een werkstroomserviceproject maken
Start Visual Studio 2012.
Klik op het menu Bestand , selecteer Nieuw en klik vervolgens op Project om het dialoogvenster Nieuw project weer te geven. Selecteer Workflow in de lijst met geïnstalleerde sjablonen en WCF Workflow Service Application in de lijst met projecttypen. Geef het project
MyWFService
een naam en gebruik de standaardlocatie, zoals wordt weergegeven in de volgende afbeelding.Klik op de knop OK om het dialoogvenster Nieuw project te sluiten.
Wanneer het project is gemaakt, wordt het bestand Service1.xamlx geopend in de ontwerpfunctie, zoals wordt weergegeven in de volgende afbeelding.
Klik met de rechtermuisknop op de activiteit met het label Sequentiële service en selecteer Verwijderen.
De werkstroomservice implementeren
Selecteer het tabblad Werkset aan de linkerkant van het scherm om de werkset weer te geven en klik op de punaise om het venster open te houden. Vouw de sectie Berichten van de werkset uit om de berichtenactiviteiten en de berichtactiviteitssjablonen weer te geven, zoals wordt weergegeven in de volgende afbeelding.
Sleep een ReceiveAndSendReply-sjabloon naar de werkstroomontwerper en zet deze neer . Hiermee maakt u een Sequence activiteit met een ontvangstactiviteit gevolgd door een SendReply activiteit, zoals wordt weergegeven in de volgende afbeelding.
U ziet dat de eigenschap van Request de SendReply activiteit is ingesteld op
Receive
, de naam van de Receive activiteit waarop de SendReply activiteit reageert.Typ in het Receive activiteitstype
Echo
in het tekstvak met het label OperationName. Hiermee definieert u de naam van de bewerking die de service implementeert.Als de Receive activiteit is geselecteerd, opent u het eigenschappenvenster als dit nog niet is geopend door op het menu Beeld te klikken en het venster Eigenschappen te selecteren. Schuif in het venster Eigenschappen omlaag totdat u CanCreateInstance ziet en klik op het selectievakje zoals wordt weergegeven in de volgende afbeelding. Met deze instelling kan de werkstroomservicehost een nieuw exemplaar van de service maken (indien nodig) wanneer een bericht wordt ontvangen.
Selecteer de Sequence activiteit en klik op de knop Variabelen in de linkerbenedenhoek van de ontwerpfunctie. Hiermee wordt de editor voor variabelen weergegeven. Klik op de koppeling Variabele maken om een variabele toe te voegen om de tekenreeks op te slaan die naar de bewerking is verzonden. Geef de variabele
msg
een naam en stel het type variabele in op Tekenreeks, zoals wordt weergegeven in de volgende afbeelding.Klik nogmaals op de knop Variabelen om de editor voor variabelen te sluiten.
Klik op de koppeling Definiëren in het tekstvak Inhoud in de Receive activiteit om het dialoogvenster Inhoudsdefinitie weer te geven. Selecteer het keuzerondje Parameters , klik op de koppeling Nieuwe parameter toevoegen, typ
inMsg
het tekstvak Naam , selecteer Tekenreeks in de vervolgkeuzelijst Type en typmsg
het tekstvak Toewijzen aan , zoals wordt weergegeven in de volgende afbeelding.Hiermee geeft u op dat de ontvangstactiviteit een tekenreeksparameter ontvangt en dat de gegevens zijn gebonden aan de
msg
variabele. Klik op OK om het dialoogvenster Inhoudsdefinitie te sluiten.Klik op de koppeling Definiëren... in het vak Inhoud in de SendReply activiteit om het dialoogvenster Inhoudsdefinitie weer te geven. Selecteer het keuzerondje Parameters , klik op de koppeling Nieuwe parameter toevoegen, typ
outMsg
het tekstvak naam , selecteer Tekenreeks in de vervolgkeuzelijst Type enmsg
selecteer in het tekstvak Waarde , zoals wordt weergegeven in de volgende afbeelding.Hiermee geeft u op dat de SendReply activiteit een bericht- of berichtcontracttype verzendt en dat de gegevens zijn gebonden aan de
msg
variabele. Omdat dit een SendReply activiteit is, betekent dit dat de gegevens wordenmsg
gebruikt om het bericht te vullen dat de activiteit terugstuurt naar de client. Klik op OK om het dialoogvenster Inhoudsdefinitie te sluiten.Sla de oplossing op en bouw deze door op het menu Build te klikken en Build Solution te selecteren.
Het werkstroomserviceproject configureren
De werkstroomservice is voltooid. In deze sectie wordt uitgelegd hoe u de werkstroomserviceoplossing configureert om eenvoudig te hosten en uit te voeren. Deze oplossing maakt gebruik van de ASP.NET Development Server om de service te hosten.
Opstartopties voor projecten instellen
Klik in Solution Explorer met de rechtermuisknop op MyWFService en selecteer Eigenschappen om het dialoogvenster Projecteigenschappen weer te geven.
Selecteer het tabblad Web en selecteer Specifieke pagina onder Actie starten en typ
Service1.xamlx
het tekstvak, zoals wordt weergegeven in de volgende afbeelding.Hiermee wordt de service gehost die is gedefinieerd in Service1.xamlx in de ASP.NET Development Server.
Druk op Ctrl+F5 om de service te starten. Het pictogram ASP.NET Development Server wordt rechtsonder op het bureaublad weergegeven, zoals wordt weergegeven in de volgende afbeelding.
Bovendien wordt in de browser de helppagina van de WCF-service voor de service weergegeven.
Ga door naar het onderwerp Procedure: Toegang krijgen tot een service vanuit een werkstroomtoepassingsonderwerp om een werkstroomclient te maken die deze service aanroept.