如何:使用 WorkflowServiceHost 配置永久性
本文介绍如何使用配置文件配置 SQL 工作流实例存储功能,以便对 WorkflowServiceHost 中承载的工作流启用永久性。 使用 SQL 工作流实例存储功能之前,必须创建用于保存工作流实例的 SQL 数据库。 有关详细信息,请参阅如何:对工作流和工作流服务启用 SQL 持久性。
在配置中配置 SQL 工作流实例存储
可以通过 SqlWorkflowInstanceStoreBehavior(一个用于通过 XML 配置更改设置的服务行为)配置 SQL 工作流实例存储的属性。 下面的配置示例演示如何使用配置文件中的
<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 工作流实例存储。
注意
上面的配置示例使用的是简化配置。 有关详细信息,请参阅简化配置
有关如何以编程方式配置持久性的示例,请参阅如何:对工作流和工作流服务启用持久性。