错误: InstancePersistenceCommand的执行被中断,因为实例'42ca66e7-35e3-462e-9594-a98ee009d2e2'尚未持久保存到实例存储。
当我在已从内存中卸载的现有工作流实例上调用第二个接收活动时,会发生这种情况。如果实例仍在内存中,我没有问题。等待1分钟或停止调试器后,实例将被卸载。
我可以在System.Activities.DurableInstancing.InstancesTable表中看到一条ID为42CA66E7-35E3-462E-9594-A98EE009D2E2的记录。
知道我为什么遇到这个问题?
似乎我的工作流状态没有被持久化和/或持久性没有正常发生。 Here's is a workflow instance record in the System.Activities.DurableInstancing.InstancesTable table.只是我或者我应该在那里看到一些序列化状态吗?
如果我在我的工作流程中使用未标记为[Serializable]的类并试图保留它会发生什么?
答案 0 :(得分:0)
我发现由于工作流程中使用的某些类型存在一些问题,序列化正在中断。
第一个问题是我用[DataMember]标记了一个没有set访问器的属性。在删除属性之前,NetDataContractSerializer无法序列化该类型。
第二个问题是我有一个IEnumerable类型的工作流变量,显然没有标记为Serializable或DataContract。我不知道当我这样做时我在想什么。
在了解WorkflowServiceTraceBehavior on Ron Jacobs blog后,很容易发现这些问题。