5

我有一个 wcf 工作流,其中有三个按顺序排列的接收活动。IE

1.接收申请 2.Manager1 批准 3.最终经理批准 我的问题是我能够从我的客户端应用程序中使用工作流并调用第一个(接收应用程序活动),但是当我尝试调用第二个(manager1 批准接收活动)我收到以下错误

InstancePersistenceCommand 的执行被中断,因为实例 '16c3dae0-92f5-45e8-bdaf-d6f4051a0a39' 尚未持久化到实例存储。

我检查了数据库(实例存储表)并且记录似乎存在。我还设置了本文中指定的相关性 请帮助,这很紧急

4

2 回答 2

5

我终于弄清楚了问题所在。我花了三天时间。

我只需要添加以下内容:

<serviceBehaviors>
  <behavior>
    <workflowIdle timeToUnload="0"/>
  </behavior>
</serviceBehaviors>

您可以在本文中获得更多详细信息。

注意:我的工作流程获得了 1 分钟的默认 timeToUnload 值(来自机器配置)。这意味着当我在工作流中调用下一个接收活动时,工作流仍在内存中。(真的很奇怪)

于 2011-01-11T12:14:53.820 回答
1

GUID 是正确的吗?有时,如果 WF4 运行时找不到现有的 GUID,它会生成一个新的 GUID,从而导致一些令人困惑的错误消息。更改命名空间也会阻止相关查询。因此,如果您这样做了,则需要重新创建它们,或者进入 XAML 并修复它们。

于 2011-01-11T07:05:16.487 回答