2

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);

ワークフローに含まれるカスタム アクティビティ内のデータベースの ProductID に対するワークフロー インスタンス GUID を保存しているので、特定のワークフロー インスタンスを製品 ID まで簡単に追跡できます。どうにかしてこの製品 ID を ServiceHost に渡し、永続化された正しいワークフローを再開できるようにしたいと考えています。

これを行う方法について誰かが私を正しい方向に向けることができますか?

よろしくお願いします

4

1 に答える 1

1

Content Correlationについて読みたいと思うでしょう。ProductID を Receive アクティビティと関連付けます。受信に到達するとブックマークが作成され、ワー​​クフローが保持されます。receive を呼び出して ProductID を渡すと、相関関係により、WF ランタイムは再開するインスタンスを認識します。

于 2011-02-21T20:21:39.910 に答える