Перезапуск сохраненного рабочего процесса с помощью собственного хоста WorkflowServiceHost - PullRequest
2 голосов
/ 18 февраля 2011

Я пытаюсь выяснить, как возобновить постоянный рабочий процесс, который я сам размещаю с 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 продукта. Я хочу как-то передать этот идентификатор продукта моему ServiceHost и возобновить для меня правильный постоянный рабочий процесс.

Кто-нибудь может указать мне правильное направление, как это сделать?

Большое спасибо заранее Ian

1 Ответ

1 голос
/ 21 февраля 2011

Вы хотите прочитать о Content Correlation .Вы свяжете свой ProductID с вашими действиями получения.Закладка будет создана, когда вы достигнете получения, и ваш рабочий процесс будет сохранен.Вы вызываете прием и передаете свой ProductID, и из-за корреляции среда выполнения WF знает, какой экземпляр возобновить.

...