Lezen in het Engels

Delen via


Interne onderdelen van de werkstroomservicehost

WorkflowServiceHost biedt een host voor werkstroomservices. Het is verantwoordelijk voor het luisteren naar binnenkomende berichten en het doorsturen naar de juiste instantie van de werkstroomservice. Het regelt het afsluiten en bewaren van stille werkstromen, en nog veel meer. In dit onderwerp wordt beschreven hoe WorkflowServiceHost binnenkomende berichten verwerkt.

Overzicht van WorkflowServiceHost

De WorkflowServiceHost klasse wordt gebruikt voor het hosten van werkstroomservices. Het luistert naar binnenkomende berichten en stuurt deze naar het juiste service-exemplaar, maakt nieuwe exemplaren of laadt bestaande exemplaren van duurzame opslag indien nodig. In het volgende diagram ziet u op hoofdlijnen hoe WorkflowServiceHost werkt:

Diagram met een overzicht van de werkstroomservicehost.

In dit diagram ziet u dat WorkflowServiceHost werkstroomservicedefinities uit .xamlx-bestanden worden geladen en configuratiegegevens uit een configuratiebestand worden geladen. Ook wordt de traceringsconfiguratie vanuit het traceringsprofiel geladen. WorkflowServiceHost maakt een eindpunt voor werkstroombeheer beschikbaar waarmee u besturingsbewerkingen naar werkstroomexemplaren kunt verzenden. Zie het voorbeeld van het eindpunt voor werkstroombeheer voor meer informatie.

WorkflowServiceHost maakt ook toepassingseindpunten beschikbaar die luisteren naar binnenkomende toepassingsberichten. Wanneer een binnenkomend bericht binnenkomt, wordt het verzonden naar het juiste werkstroomservice-exemplaar (als het momenteel is geladen). Indien nodig wordt er een nieuw werkstroomexemplaar gemaakt. Of als een bestaand exemplaar is behouden, wordt het geladen vanuit het persistentiearchief.

WorkflowServiceHost Details

In het volgende diagram ziet u hoe WorkflowServiceHost berichten in iets meer detail worden verwerkt:

Diagram dat de berichtenstroom van de werkstroomservice-host toont.

In dit diagram ziet u drie verschillende eindpunten, een toepassingseindpunt, een eindpunt voor werkstroombeheer en een eindpunt voor het hosten van werkstromen. Het eindpunt van de applicatie ontvangt berichten die zijn gebonden aan een specifieke workflow instantie. Het eindpunt voor werkstroombeheer luistert naar besturingsbewerkingen. Het hosteindpunt van de werkstroom luistert naar berichten die ervoor zorgen dat WorkflowServiceHost niet-service-werkstromen worden geladen en uitgevoerd. Zoals in het diagram wordt weergegeven, worden alle berichten verwerkt via de WCF-runtime. Het vertragen van workflowservice-instanties wordt bereikt met behulp van de MaxConcurrentInstances eigenschap. Met deze eigenschap wordt het aantal gelijktijdige werkstroomservice-exemplaren beperkt. Wanneer deze drempel wordt overschreden, worden alle extra aanvragen voor nieuwe werkstroomservice-exemplaren of aanvragen voor het activeren van bewaarde werkstroomexemplaren in de wachtrij geplaatst. De aanvragen in de wachtrij worden verwerkt in FIFO-volgorde, ongeacht of het aanvragen zijn voor een nieuw exemplaar of een actief, persistent exemplaar. Informatie over hostbeleid wordt geladen waarmee wordt bepaald hoe niet-verwerkte uitzonderingen worden behandeld en hoe niet-actieve werkstroomservices worden beëindigd en bewaard. Voor meer informatie over deze onderwerpen zie How to: Configure Workflow Unhandled Exception Behavior with WorkflowServiceHost en How to: Configure Idle Behavior with WorkflowServiceHost. Workflowinstanties worden opgeslagen volgens het hostbeleid en worden opnieuw geladen wanneer nodig. Zie voor meer informatie over werkstroompersistentie: Persistentie configureren met WorkflowServiceHost, Een langlopende werkstroomservice maken en werkstroompersistentie.

In de volgende afbeelding ziet u de stroom wanneer WorkflowServiceHost.Open wordt aangeroepen:

Diagram waarin de stroom wordt weergegeven wanneer WorkflowServiceHost.Open wordt aangeroepen.

De werkstroom wordt geladen vanuit XAML en de activiteitenstructuur wordt gemaakt. WorkflowServiceHost doorloopt de activiteitenstructuur en maakt de servicebeschrijving. De configuratie wordt toegepast op de host. Ten slotte begint de host te luisteren naar binnenkomende berichten.

In de volgende afbeelding ziet u wat de WorkflowServiceHost doet wanneer er een bericht wordt ontvangen dat bestemd is voor een ontvangstactiviteit met CanCreateInstance ingesteld op true.

Beslissingsstructuur die wordt gebruikt door de WFS-host wanneer er een bericht wordt ontvangen en CanCreateInstance is waar.

Het bericht komt binnen en wordt verwerkt door de WCF-kanaalstack. Regelaars worden gecontroleerd en correlatiequery's worden uitgevoerd. Als het bericht bestemd is voor een bestaand exemplaar, wordt het bericht bezorgd. Als er een nieuw exemplaar moet worden gemaakt, wordt de eigenschap CanCreateInstance van de activiteit Ontvangen ingeschakeld. Als deze is ingesteld op true, wordt er een nieuw exemplaar gemaakt en wordt het bericht bezorgd.

In de volgende afbeelding ziet u wat het WorkflowServiceHost doet wanneer er een bericht wordt ontvangen dat is gebonden aan een ontvangstactiviteit waarvoor CanCreateInstance is ingesteld op false.

Beslissingsstructuur die wordt gebruikt door de WFS-host wanneer er een bericht wordt ontvangen en CanCreateInstance onwaar is.

Het bericht komt binnen en wordt verwerkt door de WCF-kanaalstack. Regelaars worden gecontroleerd en correlatiequery's worden uitgevoerd. Het bericht is gebonden aan een bestaand exemplaar (omdat CanCreateInstance onwaar is), zodat het exemplaar wordt geladen vanuit het persistentiearchief, de bladwijzer wordt hervat en de werkstroom wordt uitgevoerd.

Waarschuwing

Workflowservicehost kan niet worden geopend als SQL Server is geconfigureerd om uitsluitend te luisteren via het NamedPipe-protocol.

Zie ook


Aanvullende resources