2

我有一个使用关联的长时间运行的工作流服务。该服务的客户端快速连续发送两个请求。所有接收活动的消息模式都是单向的。绑定类型是basicHttp。第一个请求启动工作流,第二个请求执行与初始请求相关的特定操作。为了确保消息按顺序到达,我强制客户端休眠一段时间,以允许工作流程发起请求并建立关联密钥。大部分时间对服务的请求都成功处理。有时,工作流失败,工作流基础4接收到乱序请求并失败,并且键xx未与实例关联

“的InstancePersistenceCommand的执行被中断 因为实例键‘XX’不是与实例相关的消息,可能会出现此 因为实例或键已被清理,或因为 密钥无效,如果从 生成的消息在错误的时间发送或包含不正确的 相关数据,密钥可能无效。“

该服务托管在IIS中,当前正在一台服务器上运行。我有一个标记为CanCreateInstance的Receive活动。此活动启动工作流,然后启动其他接收活动,这些活动位于挑选活动内部,对服务呼叫作出响应。在最初的接收活动以及每个其他收到活动之后,我有一项活动,名为PromoteValue,该活动通过促销活动参与者宣传活动。这项服务的持久性细节的配置都timeToPersist =“00:01:00” timeToUnload =“00:00:00” hostLockRenewalPeriod =“00:00:30

我是否需要设置服务使用AllowBufferedReceive并使用支持ReceiveContext的通道?我应该使用双向消息而不是单向消息,因此阻止客户端,直到工作流可以完成初始请求为止。它可以防止发生错误

回答

相关问题