0
我有一個使用SqlWorkflowInstanceStore的自託管的WF 4服務。我配置它,像這樣:下來使用SqlInstanceStore時,我必須顯式配置持久性和卸載設置嗎?
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);
Futher在我的代碼,我explitly加入IdleBehavior行爲給主機,以確保卸載正在使用。基本上,我不確定SqlInstanceStore在做什麼,特別是卸載工作流程。它是否自己管理,或者我仍然需要添加我的IdleBehavior,如下所示:
// Idle behaviour
var idleBehavior = new WorkflowIdleBehavior();
host.Description.Behaviors.Add(idleBehavior);
在此先感謝。
謝謝Maurice。如果通過InstanceStore的內部管理在執行過程中保存,是否可以安全地假設它也自動從內存中卸載工作流? – Ian 2011-03-24 12:07:52
不,該狀態將作爲某些操作的結果保存,但不會從內存中卸載工作流實例。您需要明確使用空閒行爲,關閉服務主機或使用控制端點。 – Maurice 2011-03-24 12:28:27
非常好,謝謝Maurice。 – Ian 2011-03-24 13:30:12