Delen via


Procedure: Persistentie inschakelen voor werkstromen en werkstroomservices

In dit artikel wordt beschreven hoe u persistentie inschakelt voor werkstromen en werkstroomservices.

Persistentie inschakelen voor werkstromen

U kunt een exemplaararchief koppelen aan een WorkflowApplication met behulp van de InstanceStore eigenschap van de WorkflowApplication klasse. Met de Persist methode wordt een werkstroom opgeslagen of bewaard in het exemplaararchief dat is gekoppeld aan de toepassing. Met Unload de methode wordt een werkstroom in het exemplaararchief bewaard en wordt het exemplaar vervolgens uit het geheugen verwijderd. Met de methode Laden wordt een werkstroom in het geheugen geladen met behulp van de werkstroomgegevens die zijn opgeslagen in het persistentiearchief van het exemplaar.

De methode Persistent voert de volgende stappen uit:

  1. Hiermee wordt de werkstroomplanner onderbroken en wordt gewacht totdat de werkstroom de niet-actieve status invoert.
  2. De werkstroom blijft behouden of opgeslagen in het persistentiearchief.
  3. Hiermee wordt de werkstroomplanner hervat.

De methode Unload voert de volgende stappen uit:

  1. Hiermee wordt de werkstroomplanner onderbroken en wordt gewacht totdat de werkstroom de niet-actieve status invoert.
  2. De werkstroom blijft behouden of opgeslagen in het persistentiearchief.
  3. Hiermee wordt het werkstroomexemplaren in het geheugen verwijderd.

De methoden Persistent en Unload worden geblokkeerd terwijl een werkstroom zich in een niet-persistente zone bevindt totdat de werkstroom de zone no-persist verlaat. De methode gaat verder met de persistent- of unload-bewerking nadat de zone zonder persistent is voltooid. Als de zone no-persist niet wordt voltooid voordat de time-out is verstreken of als het persistentieproces te lang duurt, wordt er een TimeoutException gegenereerd.

Persistentie in code inschakelen

Het durableInstancingOptions-lid van de klasse heeft een eigenschap met de WorkflowServiceHost naam InstanceStore die u kunt gebruiken om een exemplaararchief te koppelen aan de WorkflowServiceHost.

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

Wanneer de WorkflowServiceHost wordt geopend, wordt persistentie automatisch ingeschakeld als durableInstancingOptions.InstanceStore niet null is.

Normaal gesproken biedt een servicegedrag het concrete exemplaararchief dat moet worden gebruikt met een werkstroomservicehost met behulp van de eigenschap InstanceStore . Hiermee maakt u bijvoorbeeld SqlWorkflowInstanceStoreBehavior een exemplaar van de SqlWorkflowInstanceStore, configureert deze en wijst u dit toe aan durableInstancingOptions.InstanceStore.

Persistentie inschakelen met behulp van een toepassingsconfiguratiebestand

Persistentie kan worden ingeschakeld met behulp van een toepassingsconfiguratiebestand door de volgende code toe te voegen aan uw app.config- of web.config-bestand:

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

Belangrijk

Microsoft raadt u aan de veiligste verificatiestroom te gebruiken die beschikbaar is. Als u verbinding maakt met Azure SQL, is Managed Identities voor Azure-resources de aanbevolen verificatiemethode.