Vorgehensweise: Konfigurieren des Leerlaufverhaltens mit WorkflowServiceHostHow to: Configure Idle Behavior with WorkflowServiceHost

Workflows wechseln in den Leerlaufzustand, sobald sie auf ein Lesezeichen treffen, das zum Fortsetzen einen externen Anstoß erfordert, z. B. wenn die Workflowinstanz per Receive auf die Übermittlung einer Nachricht wartet.Workflows go idle when they encounter a bookmark that must be resumed by some external stimulus, for example when the workflow instance is waiting for a message to be delivered using a Receive activity. DasWorkflowIdleBehavior ist ein Verhalten, mit dem Sie die Dauer des Zeitraums zwischen dem Eintritt einer Dienstinstanz in den Leerlauf und der Beibehaltung oder Entladung einer Dienstinstanz angeben können.WorkflowIdleBehavior is a behavior that allows you to specify the time between when a service instance goes idle and when the instance is persisted or unloaded. Es enthält zwei Eigenschaften, mit denen Sie diese Zeitspannen festlegen können.It contains two properties that enable you to set these time spans. TimeToPersist gibt die Zeitspanne zwischen dem Eintritt einer Workflowdienstinstanz in den Leerlauf und dem Zeitpunkt der Beibehaltung der Workflowdienstinstanz an.TimeToPersist specifies the time span between when a workflow service instance goes idle and when the workflow service instance is persisted. TimeToUnload gibt die Zeitspanne zwischen dem Eintritt einer Workflowdienstinstanz in den Leerlauf und dem Zeitpunkt der Entladung der Workflowdienstinstanz an. Die Entladung bedeutet in diesem Fall, dass die Instanz im Instanzspeicher beibehalten und aus dem Arbeitsspeicher entfernt wird.TimeToUnload specifies the time span between when a workflow service instance goes idle and when the workflow service instance is unloaded, where unload means persisting the instance to the instance store and removing it from memory. In diesem Thema wird erklärt, wie Sie das WorkflowIdleBehavior -Verhalten in einer Konfigurationsdatei konfigurieren.This topic explains how to configure the WorkflowIdleBehavior in a configuration file.

So konfigurieren Sie WorkflowIdleBehaviorTo configure WorkflowIdleBehavior

  1. Hinzufügen einer <workflowIdle>-Elements auf der <behavior> Element innerhalb der <serviceBehaviors> Element, wie im folgenden Beispiel gezeigt.Add a <workflowIdle> element to the <behavior> element within the <serviceBehaviors> element as shown in the following example.

    <behaviors>  
      <serviceBehaviors>  
        <behavior name="">  
          <workflowIdle timeToUnload="0:05:0" timeToPersist="0:04:0"/>   
        </behavior>  
      </serviceBehaviors>  
    </behaviors>  
    

    Das timeToUnload -Attribut gibt den Zeitraum zwischen dem Eintritt einer Workflowdienstinstanz in den Leerlauf und der Entladung des Workflowdiensts an.The timeToUnload attribute specifies the time period between when a workflow service instance goes idle and when the workflow service is unloaded. Das timeToPersist -Attribut gibt den Zeitraum zwischen dem Eintritt einer Workflowdienstinstanz in den Leerlauf und der Beibehaltung der Workflowdienstinstanz an.The timeToPersist attribute specifies the time period between when a workflow service instance goes idle and when the workflow service instance is persisted. Der Standardwert für timeToUnload beträgt 1 Minute.The default value for timeToUnload is 1 minute. Der Standardwert für timeToPersist lautet MaxValue.The default value for timeToPersist is MaxValue. Wenn im Leerlauf befindliche Instanzen im Arbeitsspeicher, aber aus Gründen der Stabilität beibehalten werden sollen, legen Sie die Werte so fest, dass Folgendes zutrifft: timeToPersist < timeToUnload.If you want to keep idle instances in memory but persist them for robustness, set values so that timeToPersist < timeToUnload. Um zu verhindern, dass im Leerlauf befindliche Instanzen entladen werden, legen Sie timeToUnload auf MaxValuefest.If you want to prevent idle instances from being unloaded, set timeToUnload to MaxValue. Weitere Informationen finden Sie unterFor more information aboutWorkflowIdleBehavior, finden Sie unter Erweiterbarkeit des Workflowdiensthosts WorkflowIdleBehavior, see Workflow Service Host Extensibility

    Hinweis

    Im vorangehenden Konfigurationsbeispiel wird die vereinfachte Konfiguration verwendet.The preceding configuration sample is using simplified configuration. Weitere Informationen finden Sie unterFor more information, seeVereinfachte Konfiguration. Simplified Configuration.

So ändern Sie Leerlaufverhalten in CodeTo change idle behavior in code

  • Im folgenden Beispiel wird die Wartezeit bis zum programmgesteuerten Beibehalten und Entladen geändert.The following example changes the time to wait before persisting and unloading programmatically.

    // 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.
    alteredBehavior.TimeToPersist = new TimeSpan(0, 4, 0);
    alteredBehavior.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)
    

Siehe auchSee Also

Erweiterbarkeit des WorkflowdiensthostsWorkflow Service Host Extensibility
Vereinfachte KonfigurationSimplified Configuration
WorkflowdiensteWorkflow Services