工作流基础 - 顺序工作流中的多个书签

Workflow Foundation - Multiple Bookmarks in Sequential Workflow

我在 WCF Windows 工作流应用程序中遇到多个书签问题。

问题是我无法恢复多个书签。当我尝试恢复第二个书签时,我收到 NotFound 的 BookmarkResumptionResult。如果我再次尝试恢复书签,我会收到 InstanceLocked 异常。

初始书签似乎仍保存在工作流数据库中。

此外,这个问题似乎只发生在我在恢复书签之前执行 activity 时。

奇怪的是,我可以执行任意多的没有 OutArgument 的活动。一旦我有一个 OutArgument 或一个带有结果的 NativeActivity,初始书签似乎仍然存在,我无法继续我的工作流程。如果我有一个没有 Result 或 OutArgument 的简单 activity 写入数据库或做一些简单的事情,我可以恢复任意数量的书签。

以下是关于我的环境的一些信息:

  1. 我运行工作流作为WCF NT服务。
  2. 我正在使用 WorkflowApplication class 来管理我的工作流程
  3. WorkflowApplication 实例配置为

    一个。 PersistableIdle 事件是 PersistableIdleAction.Unload

    b。其他一切都非常简单

  4. 工作流服务行为 WorkflowIdleBehavior 的 TimeToUnload 为 new TimeSpan(0, 0, 0)

我对 WWF(以及在 SO 上发帖)还很陌生,希望我提供了足够的信息,如果需要任何细节,请告诉我。

提前感谢您的帮助!

发生的问题是我的 activity 返回了一个 Entity Framework 模型。

我通过返回一个包含我需要的值的属性的数据传输对象解决了这个问题。