我一直在尝试解决一个在 WorkflowApplication 中运行的长时间运行状态机的间歇性问题。我可以逐步完成工作流程,这会按预期运行,按预期转换状态,然后到达一个书签,然后保持工作流程。但是,工作流随后被中止,我收到以下消息:
InstancePersistenceCommand 的执行被中断,因为所有者 ID 'ba26f4e9-f38b-4179-aa09-31ab9f8af337' 的实例所有者注册已失效。此错误表明此所有者锁定的所有实例的内存副本已过时,应连同 InstanceHandles 一起丢弃。通常,最好通过重新启动主机来处理此错误。
Sql Instance store 初始化如下:
SqlStore = new SqlWorkflowInstanceStore(ConfigurationManager.ConnectionStrings["SqlInstanceStore"].ConnectionString);
SqlStore.HostLockRenewalPeriod = TimeSpan.FromSeconds(15);
SqlStore.InstanceCompletionAction = InstanceCompletionAction.DeleteAll;
handle = SqlStore.CreateInstanceHandle();
InstanceView sqlView = SqlStore.Execute(handle, new CreateWorkflowOwnerCommand(), TimeSpan.FromSeconds(30));
SqlStore.DefaultInstanceOwner = sqlView.InstanceOwner;
WorkflowHost = new WorkflowApplication(WorkflowDefinition, inputs);
WorkflowHost.Run();
要创建书签:
context.CreateBookmark(bkmk, OnResume);
该异常并没有真正提供足够的信息来帮助解决此问题。任何帮助,将不胜感激。