Procedura: abilitare la persistenza per i flussi di lavoro e i relativi serviziHow to: Enable Persistence for Workflows and Workflow Services

In questo argomento viene descritto come abilitare la persistenza dei flussi di lavoro e dei servizi flusso di lavoro.This topic describes how to enable persistence for workflows and workflow services.

Abilitare la persistenza dei flussi di lavoroEnable Persistence for Workflows

È possibile associare un archivio di istanze con un WorkflowApplication utilizzando il InstanceStore proprietà la WorkflowApplication classe.You can associate an instance store with a WorkflowApplication by using the InstanceStore property of the WorkflowApplication class. Il metodo Persist salva o rende persistente un flusso di lavoro nell'archivio di istanze associato all'applicazione.The Persist method saves or persists a workflow into the instance store associated with the application. Il metodo Unload rende persistente un flusso di lavoro nell'archivio di istanze, quindi scarica l'istanza dalla memoria.The Unload method persists a workflow into the instance store and then unloads the instance from the memory. Il carico metodo carica un flusso di lavoro in memoria usando i dati del flusso di lavoro archiviati nell'archivio di persistenza di istanza.The Load method loads a workflow into memory using the workflow data stored in the instance persistence store.

Il Persist metodo esegue i passaggi seguenti:The Persist method performs the following steps:

  1. Sospende l'utilità di pianificazione del flusso di lavoro e attende finché il flusso di lavoro non entra nello stato inattivo.Pauses the workflow scheduler and waits until the workflow enters the idle state.

  2. Rende persistente o salva il flusso di lavoro nell'archivio di persistenza.Persists or saves the workflow into the persistence store.

  3. Riprende l'utilità di pianificazione del flusso di lavoro.Resumes the workflow scheduler.

Il scaricamento metodo esegue i passaggi seguenti:The Unload method performs the following steps:

  1. Sospende l'utilità di pianificazione del flusso di lavoro e attende finché il flusso di lavoro non entra nello stato inattivo.Pauses the workflow scheduler and waits until the workflow enters the idle state.

  2. Rende persistente o salva il flusso di lavoro nell'archivio di persistenza.Persists or saves the workflow into the persistence store.

  3. Elimina l'istanza del flusso di lavoro nella memoria.Disposes the workflow instance in the memory.

Entrambi i Persist e scaricamento metodi verranno bloccati mentre un flusso di lavoro è in una zona di non persistenza finché non esce da tale area.Both the Persist and Unload methods will block while a workflow is in a no-persist zone until the workflow exits the no-persist zone. Il metodo continua l'operazione di persistenza o di scarico una volta completata l'area di non persistenza.The method continues with the persist or unload operation after the no-persist zone completes. Se l'area di non persistenza non viene completata prima della scadenza del timeout, o se il processo di persistenza impiega molto tempo, verrà generata un'eccezione TimeoutException.If the no-persist zone does not complete before the time-out elapses, or if the persistence process takes too long, a TimeoutException will be thrown.

Abilitare la persistenza dei servizi flusso di lavoro nel codiceEnable Persistence for Workflow Services in Code

Il DurableInstancingOptions appartenente il WorkflowServiceHost classe dispone di una proprietà denominata InstanceStore che è possibile utilizzare per associare un archivio di istanze con il WorkflowServiceHost .The DurableInstancingOptions member of the WorkflowServiceHost class has a property named InstanceStore that you can use to associate an instance store with the WorkflowServiceHost.

// wsh is an instance of WorkflowServiceHost class  
wsh.DurableInstancingOptions.InstanceStore = new SqlWorkflowInstanceStore();  

Quando il WorkflowServiceHost è aperto, la persistenza viene abilitata automaticamente se il Durableinstancingoptions non è null.When the WorkflowServiceHost is opened, persistence is automatically enabled if the DurableInstancingOptions.InstanceStore is not null.

In genere, un comportamento del servizio fornisce l'archivio di istanze concreto da usare con un host del servizio del flusso di lavoro utilizzando il InstanceStore proprietà.Typically, a service behavior provides the concrete instance store to be used with a workflow service host by using the InstanceStore property. Ad esempio, l'oggetto SqlWorkflowInstanceStoreBehavior crea un'istanza del SqlWorkflowInstanceStore, configura e lo assegna al Durableinstancingoptions.For example, the SqlWorkflowInstanceStoreBehavior creates an instance of the SqlWorkflowInstanceStore, configures it, and assigns it to the DurableInstancingOptions.InstanceStore.

Abilitare la persistenza per i servizi flusso di lavoro tramite un file di configurazione dell'applicazione.Enable Persistence for Workflow Services Using an Application Configuration File

È possibile abilitare la persistenza usando un file di configurazione dell'applicazione tramite l'aggiunta al file app.config o web.config del codice riportato di seguito:Persistence can be enabled using an application configuration file by adding the following code to your app.config or web.config file:

<configuration>  
  <system.serviceModel>  
    <behaviors>  
      <serviceBehaviors>  
        <behavior name="myBehavior">  
          <SqlWorkflowInstanceStore connectionString="Data Source=myDatatbaseServer;Initial Catalog=myPersistenceDatabase">  
        </behavior>  
      </serviceBehaviors>  
    <behaviors>  
  </system.serviceModel>  
</configuration>