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

Om användning av arbetsflödeskontrollslutpunkten i en transaktion och arbetsflödet som kontrolleras innehåller en Persist aktivitet blockeras arbetsflödesinstansen tills transaktionen överskrider tidsgränsen.

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:

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

Inaktiverad
I det här tillståndet körs inte arbetsflödesinstansen även om det finns aktiviteter som inte har börjat köras eller delvis har körts.

Slutförd
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 transacted versionerna kräver användning av en transaktionsmedveten bindning. I följande tabell visas de kontrollåtgärder som stöds.

Kontrollåtgärd beskrivning
Avbryt Stoppar med kraft körningen av arbetsflödesinstansen.
Avbryt Övergår en arbetsflödesinstans från aktivt eller pausat tillstånd till slutfört tillstånd.
Kör Ger en arbetsflödesinstans möjlighet att köra.
Suspend Övergår en arbetsflödesinstans från aktivt tillstånd till pausat tillstånd.
Säg upp Övergår en arbetsflödesinstans från aktivt eller pausat tillstånd till slutfört tillstånd.
Oanvänd Övergår en arbetsflödesinstans från pausat tillstånd till aktivt tillstånd.
TransactedCancel 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.
TransactedSuspend 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.
TransactedTerminate 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.
TransactedUnsuspend 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 finns i Utökningsbarhet för arbetsflödestjänstvärd.

WorkflowControlEndpoint

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.

WorkflowControlClient

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 om en transaktion ska användas.