在即将发布的 Visual Studio 2010 之前,我正在使用 Visual Studio 2010 Beta 2 来学习使用 Workflow Foundation (WF) 4.0 版。我注意到的一件事是,如果我在 SQL 数据库持久性存储中保留一个工作流,然后稍后将其加载回应用程序并完成工作流,当工作流的最后一个活动完成时,记录将从持久存储中删除。我需要确定这个功能是否是为了防止数据库变得庞大而设计的,或者我做错了什么。
问问题
1750 次
1 回答
4
此删除行为是可配置的。例如,如果您使用 WorkflowServiceHost 并使用代码配置服务主机,则可以将 SqlWorkflowInstanceStoreBehavior.InstanceCompletionAction 设置为 InstanceCompletionAction.DeleteNothing,如下例所示:
WorkflowServiceHost host = new WorkflowServiceHost(workflow, baseAddress);
SqlWorkflowInstanceStoreBehavior persistenceBehavior = new SqlWorkflowInstanceStoreBehavior(connString);
persistenceBehavior.InstanceCompletionAction = InstanceCompletionAction.DeleteNothing;
host.Description.Behaviors.Add(persistenceBehavior);
有关 SQL 工作流实例存储的功能以及如何配置它的更多信息,请查看此MSDN 文章。
于 2009-12-16T22:30:45.217 回答