Ritardo durevoleDurable Delay

In questo esempio viene illustrato come usare un ritardo durevole, ovvero un ritardo che rende persistente il flusso di lavoro in un dispositivo durevole durante il ritardo.This sample demonstrates how to use a durable delay, which is a delay that persists the workflow to a durable device during the delay. Il flusso di lavoro di esempio contiene due messaggi alla console separati da un ritardo.The sample workflow contains two messages to the console that are separated by a delay. Quando viene attivato il ritardo, il flusso di lavoro viene scaricato e attende 5 secondi nell'archivio di istanze del flusso di lavoro prima di essere ricaricato in memoria.When the delay is triggered, the workflow is unloaded and waits 5 seconds in the workflow instance store before being reloaded in memory.

Dettagli del flusso di lavoroWorkflow Details

Oltre a ospitare il flusso di lavoro, l'host del servizio flusso di lavoro gestisce le istanze del flusso di lavoro caricandole e scaricandole.The workflow service host hosts the workflow and manages the workflow instances by loading and unloading them. Per avviare un'istanza della definizione di flusso di lavoro, nell'esempio viene impostato un proxy che invia un messaggio all'attività Receive nel flusso di lavoro.To start an instance of the workflow definition, the sample sets a proxy that sends a message to the Receive activity in the workflow. La proprietà CanCreateInstance è impostata su true, consentendo la creazione di una nuova istanza del flusso di lavoro dopo la ricezione di un messaggio.The CanCreateInstance property is set to true, enabling it to create a new instance of the workflow once it receives a message.

Nell'elenco seguente viene fornita una descrizione dettagliata della configurazione del servizio flusso di lavoro durante l'inizializzazione.The following list details the set-up by the workflow service host during initialization.

  1. Crea un host del servizio con un indirizzo (http://localhost:8080/Client).Creates a service host with an address (http://localhost:8080/Client).

  2. Crea un endpoint nell'host del servizio per abilitare la comunicazione con l'attività Receive nel flusso di lavoro.Creates an endpoint in the service host to enable communication with the Receive activity inside the workflow.

  3. Configura un archivio di istanze SQL.Sets up a SQL instance store.

  4. Aggiunge un comportamento di scaricamento di istanze che specifica le condizioni in base alle quali l'host del servizio flusso di lavoro deve scaricare un'istanza del flusso di lavoro nell'archivio di persistenza SQL.Adds an unload instance behavior that specifies the conditions under which the workflow service host should unload a workflow instance to the SQL persistence store. Per questo esempio, scarica immediatamente l'istanza dopo che il flusso di lavoro diventa inattivo (quando viene attivato il ritardo).For this sample, it unloads the instance immediately after the workflow goes idle (when the delay is triggered).

  5. Crea il proxy che invia un messaggio all'attività Receive nel flusso di lavoro.Creates the proxy that sends a message to the Receive activity in the workflow.

Per usare questo esempioTo use this sample

  1. Impostare il database di persistenza.Set up the persistence database.

    1. Aprire il prompt dei comandi di Visual Studio 2010Visual Studio 2010.Open a Visual Studio 2010Visual Studio 2010 command prompt.

    2. Passare il .NET Framework.NET Framework directory (C:\Windows\Microsoft.NET\Framework\v4. X\).Navigate to the .NET Framework.NET Framework directory (C:\Windows\Microsoft.NET\Framework\v4.X\).

    3. Modificare il file WorkflowManagementService.exe.config e aggiungere la stringa di connessione seguente nell'elemento <database>.Edit the WorkflowManagementService.exe.config file and add the following connection string inside the <database> element.

      <database connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=DefaultSampleStore;Integrated Security=True;Asynchronous Processing=True" />  
      
    4. Passare alla directory DurableDelay\CS.Navigate to the DurableDelay\CS directory.

    5. Eseguire Setup.cmd.Run Setup.cmd.

  2. Eseguire Visual Studio 2010Visual Studio 2010 con autorizzazioni elevate facendo clic con il Visual Studio 2010Visual Studio 2010 e selezionando Esegui come amministratore.Run Visual Studio 2010Visual Studio 2010 using elevated permissions by right-clicking the Visual Studio 2010Visual Studio 2010 icon and selecting Run as administrator.

  3. Aprire il file della soluzione Delay.sln.Open the Delay.sln solution file.

  4. Per compilare la soluzione, premere CTRL+MAIUSC+B.Press CTRL+SHIFT+B to build the solution.

  5. Premere CTRL+F5 per eseguire la soluzione.Press CTRL+F5 to run the solution.

Per disinstallare l'esempioTo uninstall this sample

  1. Aprire il prompt dei comandi di Visual Studio 2010Visual Studio 2010.Open a Visual Studio 2010Visual Studio 2010 command prompt.

  2. Passare alla directory DurableDelay\CS.Navigate to the DurableDelay\CS directory.

  3. Eseguire Cleanup.cmd.Run Cleanup.cmd.

Importante

È possibile che gli esempi siano già installati nel computer.The samples may already be installed on your machine. Verificare la directory seguente (impostazione predefinita) prima di continuare.Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

Se questa directory non esiste, andare al Windows Communication Foundation (WCF) e gli esempi di Windows Workflow Foundation (WF) per .NET Framework 4 per scaricare tutti i Windows Communication Foundation (WCF) e WFWF esempi.If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF) and WFWF samples. Questo esempio si trova nella directory seguente.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WF\Basic\Services\DurableDelay