我想为我的WF4主机使用受支持的WF4持久性,但是到目前为止,我还没有看到任何好的、简单的、简洁的示例。我希望有人能想出一个例子,或者知道一个网站有这些类型的例子。
发布于 2014-06-02 16:42:11
打开您的SQL服务器管理演播室并创建持久性数据库。
对于SQL 4.5,请按顺序使用位于:%systemroot%\Microsoft.NET\Framework\v4.0.30319\SQL\en、SqlWorkflowInstanceStoreSchema.sql和SqlWorkflowInstanceStoreLogic.sql的.Net脚本。
请参阅:http://blogs.msdn.com/b/carlos/archive/2013/01/10/workflow-foundation-sql-scripts.aspx
然后打开Visual并创建一个工作流并将其附加到WorkflowApplication
_workflowApplication = new WorkflowApplication(new International(), inParams);其中International是工作流的名称(本例中为XAML )
然后将持久性提供程序连接到WorkflowApplication:
InstanceStore persistanceStore = new
SqlWorkflowInstanceStore(_persistenceDataBaseConnection);
_workflowApplication.InstanceStore = persistanceStore;其中,_persistenceDataBaseConnection是到string的连接字符串。
现在,当您运行工作流(_workflowApplication.Run();)时,持久性存储就可以使用了。
当您告诉工作流时(使用持久化活动)或工作流等待/延迟时(如果您设置回调委托:例如
_workflowApplication.PersistableIdle = WorkflowApplicationPersistableIdle;
其中WorkflowApplicationPersistableIdle是您编写的方法。
您还应该将工作流ID保存在某个位置,以便在加载持久化工作流时使用(请参见下面)
WorkFlowID = _workflowApplication.Id.ToString();还有许多其他特性,但这些都是基本特性。
要从持久性存储加载工作流:
制作相同类型的workflowApplication:
_workflowApplication = new WorkflowApplication(new International(), inParams);然后使用持久化工作流的ID加载它。
_workflowApplication.Load(_workflowID);https://stackoverflow.com/questions/23998302
复制相似问题