作法:以 WorkflowServiceHost 設定持續性
本文描述如何設定 SQL 工作流程執行個體存放區功能,透過使用組態檔以啟用裝載於 WorkflowServiceHost 中之工作流程的持續性。 使用 SQL 工作流程執行個體存放區功能前,您必須建立一個用於保存工作流程執行個體的 SQL 資料庫。 如需詳細資訊,請參閱如何:啟用工作流程和工作流程服務的 SQL 持續性。
若要在組態中設定 SQL 工作流程執行個體存放區
您可以透過 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 工作流程執行個體存放區
您可以透過 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 工作流程執行個體存放區。
注意
上述組態範例會使用簡化的組態。 如需詳細資訊,請參閱簡化設定
如需如何以程式設計方式設定持續性的範例,請參閱如何:啟用工作流程與工作流程服務的持續性。