Procedure: Niet-actief gedrag configureren met WorkflowServiceHost
Werkstromen worden niet actief wanneer ze een bladwijzer tegenkomen die moet worden hervat door een externe prikkel, bijvoorbeeld wanneer het werkstroomexemplaren wachten tot een bericht wordt bezorgd met behulp van een Receive activiteit. WorkflowIdleBehavior is een gedrag waarmee u de tijd kunt opgeven tussen het moment waarop een service-exemplaar inactief gaat en wanneer het exemplaar wordt behouden of verwijderd. Het bevat twee eigenschappen waarmee u deze tijdsperioden kunt instellen. TimeToPersist hiermee geeft u de tijdsduur op tussen wanneer een werkstroomservice-exemplaar niet actief wordt en wanneer het exemplaar van de werkstroomservice wordt behouden. TimeToUnload geeft de tijdsduur aan tussen wanneer een werkstroomservice-exemplaar inactief gaat en wanneer het exemplaar van de werkstroomservice wordt verwijderd, waarbij het laden betekent dat het exemplaar in het exemplaararchief blijft staan en uit het geheugen wordt verwijderd. In dit onderwerp wordt uitgelegd hoe u het WorkflowIdleBehavior configureert in een configuratiebestand.
WorkflowIdleBehavior configureren
Voeg een
<workflowIdle>
element toe aan het<behavior>
element in het<serviceBehaviors>
element, zoals wordt weergegeven in het volgende voorbeeld.<behaviors> <serviceBehaviors> <behavior name=""> <workflowIdle timeToUnload="0:05:0" timeToPersist="0:04:0"/> </behavior> </serviceBehaviors> </behaviors>
Het
timeToUnload
kenmerk geeft de periode aan tussen het moment waarop een werkstroomservice-exemplaar niet actief wordt en wanneer de werkstroomservice wordt verwijderd. HettimeToPersist
kenmerk geeft de periode aan tussen het moment waarop een werkstroomservice-exemplaar niet actief wordt en wanneer het exemplaar van de werkstroomservice wordt behouden. De standaardwaarde istimeToUnload
1 minuut. De standaardwaarde istimeToPersist
MaxValue. Als u niet-actieve exemplaren in het geheugen wilt bewaren, maar deze wilt behouden voor robuustheid, stelt u waarden in, zodattimeToPersist
<timeToUnload
. Als u wilt voorkomen dat niet-actieve exemplaren worden verwijderd, stelt u deze intimeToUnload
op MaxValue. Voor meer informatie over WorkflowIdleBehavior, zie Workflow Service Host Extensibility.Notitie
Het voorgaande configuratievoorbeeld maakt gebruik van vereenvoudigde configuratie. Zie Vereenvoudigde configuratie voor meer informatie.
Niet-actief gedrag in code wijzigen
In het volgende voorbeeld wordt de tijd gewijzigd die moet worden gewacht voordat programmatisch wordt bewaard en verwijderd.
// Code to create a WorkFlowServiceHost is not shown here. // Note that SqlWorkflowInstanceStore is in the System.Activities.DurableInstancing.dll. host.DurableInstancingOptions.InstanceStore = new SqlWorkflowInstanceStore(connectionString); WorkflowIdleBehavior alteredBehavior = new WorkflowIdleBehavior { // Alter the time to persist and unload. TimeToPersist = new TimeSpan(0, 4, 0), TimeToUnload = new TimeSpan(0, 5, 0) }; //Remove the existing behavior and replace it with the new one. host.Description.Behaviors.Remove<WorkflowIdleBehavior>(); host.Description.Behaviors.Add(alteredBehavior);
' Code to create a WorkflowServiceHost not shown here. ' Note that SqlWorkflowInstanceStore is in the System.Activities.DurableInstancing.dll host.DurableInstancingOptions.InstanceStore = New SqlWorkflowInstanceStore(connectionString) ' Create a new workflow behavior. Dim alteredBehavior As WorkflowIdleBehavior = New WorkflowIdleBehavior() ' Alter the time to persist and unload. alteredBehavior.TimeToPersist = New TimeSpan(0, 4, 0) alteredBehavior.TimeToUnload = New TimeSpan(0, 5, 0) ' Remove the existing behavior and add the new one. host.Description.Behaviors.Remove(Of WorkflowIdleBehavior)() host.Description.Behaviors.Add(alteredBehavior)