Dela via


Slutpunkt för arbetsflödeskontroll

Med slutpunkten för arbetsflödeskontroll kan utvecklare anropa kontrollåtgärder för att fjärrstyra arbetsflödesinstanser med hjälp av WorkflowServiceHost. Den här funktionen kan användas för att programmatiskt utföra kontrollåtgärder som pausa, återuppta och avsluta.

Varning

När arbetsflödeskontrollslutpunkten används inom en transaktion och det arbetsflöde som kontrolleras innehåller en Persist-aktivitet, kommer arbetsflödesinstansen att blockeras tills tidsgränsen för transaktionen löper ut.

Hantering av arbetsflödesinstanser

.NET Framework 4.6.1 definierar ett nytt kontrakt med namnet IWorkflowInstanceManagement. Det här kontraktet definierar en serie kontrollåtgärder som gör att du kan fjärrstyra arbetsflödesinstanser som hanteras av WorkflowServiceHost. WorkflowControlEndpoint är en standardslutpunkt som tillhandahåller en implementering av IWorkflowInstanceManagement kontraktet. WorkflowControlClient är en klass som används för att skicka kontrollåtgärderna WorkflowControlEndpointtill .

Arbetsflödesinstanser kan vara i något av följande tillstånd:

Aktiv
Tillståndet för en arbetsflödesinstans innan den når det slutförda tillståndet och när den inte är i pausat tillstånd. I det här tillståndet körs och bearbetas programmeddelanden i arbetsflödesinstansen.

Avstängd
Arbetsflödesinstansen körs inte i det här tillståndet, även om det finns aktiviteter som inte har påbörjats eller bara delvis har genomförts.

Slutfört
Det sista tillståndet för en arbetsflödesinstans. Arbetsflödesinstansen kan inte köras när den har nått det slutförda tillståndet.

IWorkflowInstanceManagement

Gränssnittet IWorkflowInstanceManagement definierar en uppsättning kontrollåtgärder med synkrona och asynkrona versioner. De transaktionerade versionerna kräver användning av en transaktionskänslig bindning. I följande tabell visas de kontrollåtgärder som stöds.

Kontrollåtgärd Beskrivning
Avbryta Stoppar med kraft körningen av arbetsflödesinstansen.
Annullera Övergår en arbetsflödesinstans från aktivt eller pausat tillstånd till slutfört tillstånd.
Springa Ger en arbetsflödesinstans möjlighet att utföra.
Avbryta Övergår en arbetsflödesinstans från aktivt tillstånd till pausat tillstånd.
Avsluta Övergår en arbetsflödesinstans från aktivt eller pausat tillstånd till slutfört tillstånd.
Avbryt tillfällig inaktivering Övergår en arbetsflödesinstans från pausat tillstånd till aktivt tillstånd.
TransaktionAvboka Utför åtgärden Avbryt under en transaktion (som flödas in från klienten eller skapas lokalt). Om systemet upprätthåller det varaktiga tillståndet för arbetsflödesinstansen måste arbetsflödesinstansen bevaras under körningen av den här åtgärden.
TransactedRun Utför åtgärden Kör under en transaktion (som flödas in från klienten eller skapas lokalt). Om systemet upprätthåller det varaktiga tillståndet för arbetsflödesinstansen måste arbetsflödesinstansen bevaras under körningen av den här åtgärden.
Transaktionsavstängning Utför åtgärden Suspend under en transaktion (som flödas in från klienten eller skapas lokalt). Om systemet upprätthåller det varaktiga tillståndet för arbetsflödesinstansen måste arbetsflödesinstansen bevaras under körningen av den här åtgärden.
Transaktionsterminerad Utför åtgärden Avsluta under en transaktion (som flödas in från klienten eller skapas lokalt). Om systemet upprätthåller det varaktiga tillståndet för arbetsflödesinstansen måste arbetsflödesinstansen bevaras under körningen av den här åtgärden.
Transaktionsåterupptagning Utför åtgärden Unsuspend under en transaktion (som flödas in från klienten eller skapas lokalt). Om systemet upprätthåller det varaktiga tillståndet för arbetsflödesinstansen måste arbetsflödesinstansen bevaras under körningen av den här åtgärden.

Kontraktet IWorkflowInstanceManagement tillhandahåller inte något sätt att skapa en ny arbetsflödesinstans, bara för att hantera befintliga arbetsflödesinstanser. Mer information om hur du skapar en ny arbetsflödesinstans på distans finns i Utökningsbarhet för arbetsflödestjänstvärd.

ArbetsflödetsKontrollslutpunkt

WorkflowControlEndpoint är en standardslutpunkt med ett fast kontrakt, IWorkflowInstanceManagement. När den läggs till i en WorkflowServiceHost instans kan den här slutpunkten sedan användas för att skicka kommandoåtgärder till valfri arbetsflödesinstans som värdhanteras av värdinstansen. Mer information om standardslutpunkter finns i Standardslutpunkter.

Arbetsflödeskontrollklient

WorkflowControlClient är en klass som gör att du kan skicka kontrollmeddelanden till en WorkflowControlEndpoint på en WorkflowServiceHost. Den innehåller en metod för var och en av de åtgärder som stöds av IWorkflowInstanceManagement kontraktet förutom de transaktioner som utförs. WorkflowControlClient använder den omgivande transaktionen för att avgöra huruvida en transaktionsoperation ska användas.