Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf 在使用SqlInstanceStore时,我必须显式配置持久性和卸载设置吗?_Wcf_Workflow Foundation 4 - Fatal编程技术网

Wcf 在使用SqlInstanceStore时,我必须显式配置持久性和卸载设置吗?

Wcf 在使用SqlInstanceStore时,我必须显式配置持久性和卸载设置吗?,wcf,workflow-foundation-4,Wcf,Workflow Foundation 4,我有一个自我托管的WF4服务,它利用SqlWorkflowInstanceStore。我是这样配置的: var behavior = new SqlWorkflowInstanceStoreBehavior(connStr); TimeSpan detectionPeriod = behavior.RunnableInstancesDetectionPeriod; behavior.InstanceCompletionAction = Instan

我有一个自我托管的WF4服务,它利用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);

提前感谢。

WorkflowIdleBehavior将允许WorkflowServiceHost在工作流不活动时自动保留/卸载工作流。您不需要这样做,但它有助于扩展性。即使没有空闲行为,工作流状态也将在执行期间保存。

谢谢Maurice。如果在执行过程中通过InstanceStore的内部管理将其保存,是否可以安全地假定它也会自动从内存中卸载工作流?否,状态将作为某些操作的结果保存,但不会从内存中卸载工作流实例。您需要使用空闲行为、关闭服务主机或使用控制端点显式地执行此操作。