Anvisningar: Aktivera beständighet för arbetsflöden och arbetsflödestjänster

Den här artikeln beskriver hur du aktiverar beständighet för arbetsflöden och arbetsflödestjänster.

Aktivera beständighet för arbetsflöden

Du kan associera ett instansarkiv med en WorkflowApplication med hjälp InstanceStore av -klassens WorkflowApplication egenskap. Metoden Persist sparar eller bevarar ett arbetsflöde i instansarkivet som är associerat med programmet. Metoden Unload bevarar ett arbetsflöde i instansarkivet och tar sedan bort instansen från minnet. Metoden Load läser in ett arbetsflöde i minnet med hjälp av arbetsflödesdata som lagras i instansens beständighetslager.

Metoden Persist utför följande steg:

  1. Pausar arbetsflödesschemaläggaren och väntar tills arbetsflödet har inaktivt tillstånd.
  2. Bevarar eller sparar arbetsflödet i beständighetsarkivet.
  3. Återupptar arbetsflödesschemaläggaren.

Metoden Lasta av utför följande steg:

  1. Pausar arbetsflödesschemaläggaren och väntar tills arbetsflödet har inaktivt tillstånd.
  2. Bevarar eller sparar arbetsflödet i beständighetsarkivet.
  3. Bortser från arbetsflödesinstansen i minnet.

Både metoderna Persist och Unload kommer att blockeras medan ett arbetsflöde är i en icke-bevarad zon tills arbetsflödet avslutar zonen ingen beständig. Metoden fortsätter med åtgärden persist eller unload när no-persist-zonen har slutförts. Om no-persist-zonen inte slutförs innan tidsgränsen överskrids, eller om beständighetsprocessen tar för lång tid, utlöses en TimeoutException .

Aktivera beständighet i kod

DurableInstancingOptions-medlemmen i WorkflowServiceHost klassen har en egenskap med namnet InstanceStore som du kan använda för att associera ett instansarkiv med WorkflowServiceHost.

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

När WorkflowServiceHost öppnas aktiveras beständighet automatiskt om DurableInstancingOptions.InstanceStore inte är null.

Vanligtvis tillhandahåller ett tjänstbeteende det konkreta instansarkiv som ska användas med en arbetsflödestjänstvärd med hjälp av egenskapen InstanceStore . Skapar till exempel SqlWorkflowInstanceStoreBehavior en instans av SqlWorkflowInstanceStore, konfigurerar den och tilldelar den till DurableInstancingOptions.InstanceStore.

Aktivera beständighet med hjälp av en programkonfigurationsfil

Beständighet kan aktiveras med hjälp av en programkonfigurationsfil genom att lägga till följande kod i filen app.config eller web.config:

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

Viktigt!

Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Om du ansluter till Azure SQL är hanterade identiteter för Azure-resurser den rekommenderade autentiseringsmetoden.