我正在尝试解决如何恢复我使用 WorkflowServiceHost 自托管的持久工作流。目前我的主机连接持久性和空闲行为,如下所示:
// Persistence
var connStr = @"";
var behavior = new SqlWorkflowInstanceStoreBehavior(connStr);
behavior.InstanceCompletionAction = InstanceCompletionAction.DeleteNothing;
behavior.InstanceLockedExceptionAction = InstanceLockedExceptionAction.AggressiveRetry;
behavior.InstanceEncodingOption = InstanceEncodingOption.None;
host.Description.Behaviors.Add(behavior);
// Idle behaviour
var idleBehavior = new WorkflowIdleBehavior();
idleBehavior.TimeToPersist = TimeSpan.FromMinutes(2);
idleBehavior.TimeToUnload = TimeSpan.FromMinutes(2);
host.Description.Behaviors.Add(behavior);
我将工作流实例 GUID 与数据库中的 ProductID 存储在工作流中包含的自定义活动中,因此我能够轻松地将特定工作流实例跟踪到产品 ID。我希望能够以某种方式将此产品 ID 传递给我的 ServiceHost,并让它为我恢复正确的持久工作流。
谁能指出我如何做到这一点的正确方向?
非常感谢伊恩