使用SqlInstanceStore时,是否必须显式配置持久性和卸载设置?

时间:2011-03-24 11:19:47

标签: wcf workflow-foundation-4

我有一个自托管的WF 4服务,它正在使用SqlWorkflowInstanceStore。我正在配置它:

        var behavior = new SqlWorkflowInstanceStoreBehavior(connStr);
        TimeSpan detectionPeriod = behavior.RunnableInstancesDetectionPeriod;
        behavior.InstanceCompletionAction = InstanceCompletionAction.DeleteNothing;
        behavior.InstanceLockedExceptionAction = InstanceLockedExceptionAction.AggressiveRetry;
        behavior.InstanceEncodingOption = InstanceEncodingOption.None;
        host.Description.Behaviors.Add(behavior);

在我的代码中,我很快就将IdleBehavior行为添加到主机,以确保正在应用卸载。基本上,我不确定SqlInstanceStore在工作流的卸载方面做了什么。它是自己管理的,还是我还需要添加我的IdleBehavior,如下所示:

        // Idle behaviour
        var idleBehavior = new WorkflowIdleBehavior();

        host.Description.Behaviors.Add(idleBehavior);

提前致谢。

1 个答案:

答案 0 :(得分:2)

WorkflowServiceHevior将让WorkflowServiceHost在未处于活动状态时自动保留/卸载工作流。你不需要这样做,但它有助于scalabilty。即使没有空闲行为,工作流状态也将在执行期间保存。