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.