共用方式為


作法:以 WorkflowServiceHost 設定持續性

本文描述如何設定 SQL 工作流程執行個體存放區功能,透過使用組態檔以啟用裝載於 WorkflowServiceHost 中之工作流程的持續性。 使用 SQL 工作流程執行個體存放區功能前,您必須建立一個用於保存工作流程執行個體的 SQL 資料庫。 如需詳細資訊,請參閱如何:啟用工作流程和工作流程服務的 SQL 持續性

若要在組態中設定 SQL 工作流程執行個體存放區

  1. 您可以透過 SqlWorkflowInstanceStoreBehavior 設定 SQL 工作流程執行個體存放區的屬性,這個服務行為可以讓您透過 XML 組態變更設定。 下列組態範例示範如何使用組態檔中的 <sqlWorkflowInstanceStore> 行為項目來設定 SQL 工作流程執行個體存放區。

    <serviceBehaviors>
        <behavior name="">
            <sqlWorkflowInstanceStore
                 connectionString="...;Async=true"
                 instanceEncodingOption="GZip | None"
                 instanceCompletionAction="DeleteAll | DeleteNothing"
                 instanceLockedExceptionAction="NoRetry | SimpleRetry | AggressiveRetry"
                 hostLockRenewalPeriod="00:00:30"
                 runnableInstancesDetectionPeriod="00:00:05">
            </sqlWorkflowInstanceStore>
        </behavior>
    </serviceBehaviors>
    

    如需如何設定 SQL 工作流程執行個體存放區的詳細資訊,請參閱如何:啟用工作流程與工作流程服務的 SQL 持續性。 如需 <sqlWorkflowInstanceStore> 行為元素個別設定的詳細資訊,請參閱 SQL 工作流程執行個體存放區

    注意

    上述組態範例會使用簡化的組態。 如需詳細資訊,請參閱簡化設定

若要在程式碼中設定 SQL 工作流程執行個體存放區

  1. 您可以透過 SqlWorkflowInstanceStoreBehavior 設定 SQL 工作流程執行個體存放區的屬性,這個服務行為可以讓您透過程式碼變更設定。 下列範例示範如何使用程式碼中的 SqlWorkflowInstanceStoreBehavior 行為項目來設定 SQL 工作流程執行個體存放區。

    host.Description.Behaviors.Add(new SqlWorkflowInstanceStoreBehavior
    {
       ConnectionString = "...;Async=true",
       InstanceEncodingOption = "GZip | None",
       InstanceCompletionAction = "DeleteAll | DeleteNothing",
       InstanceLockedExceptionAction = "NoRetry | SimpleRetry | AggressiveRetry",
       HostLockRenewalPeriod = new TimeSpan(00, 00, 30),
       RunnableInstancesDetectionPeriod = new TimeSpan(00, 00, 05)
    });
    

    如需如何設定 SQL 工作流程執行個體存放區的詳細資訊,請參閱如何:啟用工作流程與工作流程服務的 SQL 持續性。 如需 SqlWorkflowInstanceStoreBehavior 行為元素個別設定的詳細資訊,請參閱 SQL 工作流程執行個體存放區

    注意

    上述組態範例會使用簡化的組態。 如需詳細資訊,請參閱簡化設定

    如需如何以程式設計方式設定持續性的範例,請參閱如何:啟用工作流程與工作流程服務的持續性

另請參閱