1

我有一个使用 WorkflowFoundation 4.1 实现的状态机工作流。我正在使用 SQL Server 持久性存储和 WorkflowApplication 类来加载和运行工作流。

我正在对状态机工作流模型进行更改,并且发现现有实例很容易中断。我已经编写了可以将工作流重播回正确状态的代码,这基本上是一个迁移,可以正常工作,但是我还需要能够清除旧的工作流实例。

主要问题是,如果工作流无效,我什至无法加载它,所以我也无法终止或取消它。

有没有办法使用工作流 API 来删除工作流而不加载它(即,SqlPersistenceStore 上的某些命令),还是我必须手动清理数据库?

4

1 回答 1

2

SqlWorkflowInstanceStore 不允许您直接这样做。您将需要进入数据库并删除那里的记录。如果您使用的是 AppFabric,则实际上有一个命令可以删除工作流实例,而无需为此目的先加载它。应该有一个 PowerShell 命令来使用代码执行此操作。

于 2012-09-01T09:22:16.673 回答