我已经使用WorkflowFoundation 4.1实现了状态机工作流程。我正在使用SQL Server持久性存储和WorkflowApplication类来加载和运行工作流。
我正在对状态机工作流模型进行更改,并且发现现有实例很容易中断。我编写的代码可以将工作流重放回正确的状态,这基本上是一个迁移,工作正常,但是我需要能够清除旧的工作流实例。
主要问题是如果工作流程无效,我甚至无法加载它,所以我也无法终止或取消它。
有没有办法使用工作流API删除工作流而不加载它(即SqlPersistenceStore上的某些命令),还是我必须手动清理数据库?
答案 0 :(得分:2)
SqlWorkflowInstanceStore不允许您直接执行此操作。您需要进入数据库并删除那里的记录。如果您正在使用AppFabric,实际上有一个命令可以删除工作流实例而不首先为此目的加载它。应该有一个PowerShell命令来使用代码来完成它。