Workflow 工作流基础4接收到无序的请求并且失败,因为键XX与实例不关联。

Workflow 工作流基础4接收到无序的请求并且失败,因为键XX与实例不关联。,workflow,workflow-foundation-4,workflow-foundation,workflowservice,Workflow,Workflow Foundation 4,Workflow Foundation,Workflowservice,我有一个长期运行的工作流服务,它使用相关性。此服务的客户端连续快速发送两个请求。所有接收活动的消息模式都是单向的。绑定类型是basicHttp。第一个请求启动工作流,第二个请求执行与初始请求相关的特定操作。为了确保消息按顺序到达,我强制客户端睡眠一段设定的时间,以允许工作流启动请求并建立相关密钥。大多数情况下,对服务的请求都已成功处理。有时工作流会因消息而失败 “InstancePersistenceCommand的执行被中断 因为实例键“xx”未与实例关联。此 可能是因为实例或密钥已清理,或者

我有一个长期运行的工作流服务,它使用相关性。此服务的客户端连续快速发送两个请求。所有接收活动的消息模式都是单向的。绑定类型是basicHttp。第一个请求启动工作流,第二个请求执行与初始请求相关的特定操作。为了确保消息按顺序到达,我强制客户端睡眠一段设定的时间,以允许工作流启动请求并建立相关密钥。大多数情况下,对服务的请求都已成功处理。有时工作流会因消息而失败

“InstancePersistenceCommand的执行被中断 因为实例键“xx”未与实例关联。此 可能是因为实例或密钥已清理,或者是因为 该密钥无效。如果消息被删除,则该密钥可能无效 从生成的在错误的时间发送或包含不正确的 相关数据。”

该服务托管在IIS中,当前在一台服务器上运行。我有一个用CanCreateInstance标记的Receive活动。此活动启动工作流,然后分拣活动内的其他接收活动响应服务呼叫。在最初的接收活动以及其他每个接收活动之后,我有一个名为PromoteValue的活动,该活动通过升级的属性参与者升级属性。此服务的持久性详细信息的配置为timeToPersist=“00:01:00”timeToUnload=“00:00:00”hostLockRenewalPeriod=“00:00:30”


我是否需要将服务设置为使用AllowBufferedReceive并使用支持ReceiveContext的通道?我是否应该使用双向消息传递,而不是单向消息传递,从而阻止客户端,直到工作流可以完成初始请求。在客户端中对工作流的调用之间使用休眠是不可取的,但可以防止错误发生发生。

如果有人仍然遇到此问题。 我有两个工作流程启动并运行,一切正常,但不知何故,在我创建的新工作流程中,我错过了一个步骤,无法理解为什么我得到的实例没有关联

只需再次检查