Procedura: abilitare la persistenza per i flussi di lavoro e i relativi servizi
Le informazioni contenute in questo argomento sono valide per Windows Workflow Foundation 4.
In questo argomento viene descritto come abilitare la persistenza dei flussi di lavoro e dei servizi flusso di lavoro.
Abilitare la persistenza dei flussi di lavoro
È possibile associare un archivio di istanze a un oggetto WorkflowApplication tramite la proprietà InstanceStore della classe WorkflowApplication. Il metodo Persist salva o rende persistente un flusso di lavoro nell'archivio di istanze associato all'applicazione. Il metodo Unload rende persistente un flusso di lavoro nell'archivio di istanze, quindi scarica l'istanza dalla memoria. Il metodo Load carica un flusso di lavoro in memoria utilizzando i dati del flusso di lavoro archiviati nell'archivio di persistenza dell'istanza.
Il metodo Persist effettua i passaggi seguenti:
Sospende l'utilità di pianificazione del flusso di lavoro e attende finché il flusso di lavoro non entra nello stato inattivo.
Rende persistente o salva il flusso di lavoro nell'archivio di persistenza.
Riprende l'utilità di pianificazione del flusso di lavoro.
Il metodo Unload effettua i passaggi seguenti:
Sospende l'utilità di pianificazione del flusso di lavoro e attende finché il flusso di lavoro non entra nello stato inattivo.
Rende persistente o salva il flusso di lavoro nell'archivio di persistenza.
Elimina l'istanza del flusso di lavoro nella memoria.
Entrambi i metodi Persist e Unload verranno bloccati mentre un flusso di lavoro si trova in un'area di non persistenza finché non esce da tale area. Il metodo continua l'operazione di persistenza o di scarico una volta completata l'area di non persistenza. 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.
Abilitare la persistenza dei servizi flusso di lavoro
Il membro DurableInstancingOptions della classe WorkflowServiceHost dispone di una proprietà denominata InstanceStore che può essere utilizzata per associare un archivio di istanze all'oggetto WorkflowServiceHost.
// wsh is an instance of WorkflowServiceHost class
wsh.DurableInstancingOptions.InstanceStore = new SqlWorkflowInstanceStore();
Quando l'oggetto WorkflowServiceHost viene aperto, la persistenza viene abilitata automaticamente se l'oggetto DurableInstancingOptions.InstanceStore non è Null.
In genere, un comportamento del servizio fornisce l'archivio di istanze concreto da utilizzare con un host del servizio flusso di lavoro tramite la proprietà InstanceStore. L'oggetto SqlWorkflowInstanceStoreBehavior ad esempio crea un'istanza dell'oggetto SqlWorkflowInstanceStore, lo configura e lo assegna all'oggetto DurableInstancingOptions.InstanceStore.
Vedere anche
Concetti
Procedura: abilitare la persistenza per i flussi di lavoro e i relativi servizi