Служба последовательного рабочего процесса Wake Up - PullRequest
0 голосов
/ 10 марта 2012

Мне нужно иметь возможность "разбудить" службу последовательного рабочего процесса - и эта концепция ранее работала в конечном автомате, поэтому я не понимаю, почему она не работает в последовательности.Ниже приведено изображение рабочего процесса.

Orchestrator Sequence

Этот рабочий процесс используется для управления другими службами рабочего процесса.Он буквально должен работать вечно, но нам нужна способность мягко его выключать.Ранее у меня был такой же тип вещей, реализованный в конечном автомате, задержка была триггером для одного перехода, а получение было триггером для другого.Пока первый упомянутый переход не выполнялся, я смог получить Receive, чтобы принять сообщение и перейти в конечное состояние.Здесь, как вы видите, я хочу просто установить логическое значение False, указывающее, что цикл While должен завершиться, и, таким образом, рабочий процесс завершится.

Пожалуйста, помогите мне понять, почему это не работает.

Спасибо всем!

Отредактировано для диагностического выхода

32: Activity [1] "Main Sequence" scheduled child activity [4] "While"
33: Activity [4] "While" is Executing
{
    Variables
        continueRunning: True
}
34: Activity [4] "While" scheduled child activity [6] "VisualBasicValue<Boolean>"
35: Activity [6] "VisualBasicValue<Boolean>" is Executing
36: Activity [6] "VisualBasicValue<Boolean>" is Closed
{
    Arguments
        Result: True
}
37: Activity [4] "While" scheduled child activity [8] "Pick"
38: Activity [8] "Pick" is Executing
39: Activity [8] "Pick" scheduled child activity [9] "Soft Exit Branch"
40: Activity [8] "Pick" scheduled child activity [26] "Process Branch"
41: Activity [26] "Process Branch" is Executing
42: Activity [26] "Process Branch" scheduled child activity [42] "Delay"
43: Activity [42] "Delay" is Executing
{
    Arguments
        Duration: 00:01:00
}
44: Activity [9] "Soft Exit Branch" is Executing
45: Activity [9] "Soft Exit Branch" scheduled child activity [14] "Soft Exit Sequence"
46: Activity [14] "Soft Exit Sequence" is Executing
{
    Variables
        __handle1: System.ServiceModel.Activities.CorrelationHandle
}
47: Activity [14] "Soft Exit Sequence" scheduled child activity [21] "Soft Exit"
48: Activity [21] "Soft Exit" is Executing
{
    Arguments
        CorrelatesWith: System.ServiceModel.Activities.CorrelationHandle
        Parameter0: System.ServiceModel.Activities.CorrelationHandle
}
49: Activity [21] "Soft Exit" scheduled child activity [21.1] "Sequence"
50: Activity [21.1] "Sequence" is Executing
{
    Variables
        RequestMessage: 
        ReceiveNoPersistHandle: System.Activities.NoPersistHandle
}
51: Activity [21.1] "Sequence" scheduled child activity [21.6] "InternalReceiveMessage"
52: Activity [21.6] "InternalReceiveMessage" is Executing
{
    Arguments
        CorrelatesWith: System.ServiceModel.Activities.CorrelationHandle
        noPersistHandle: System.Activities.NoPersistHandle
        Parameter0: System.ServiceModel.Activities.CorrelationHandle
}
53: WorkflowInstance "Main Sequence" is Idle
54: WorkflowInstance "Main Sequence" is Persisted
The thread '.0' (0x1fa4) has exited with code 0 (0x0).
The thread 'DebuggerThread:Soft Exit Branch.1' (0x13b4) has exited with code 0 (0x0).
55: WorkflowInstance "Main Sequence" is Unloaded

Ответы [ 3 ]

3 голосов
/ 11 марта 2012

Вы должны получить некоторые данные отслеживания - это поможет вам понять, что происходит. См. Устранение неполадок служб Workflow с ведением журнала диагностики

0 голосов
/ 15 июня 2012

Этот WorkFlow присутствует в Visual Studio Framework 3.5 .. Подобные действия можно выполнить с помощью Active Library в Framework 4.0 или с помощью приложения Workflow Console.

Я просто хотел добавить это, потому что многие говорят, что онине способны увидеть последовательный рабочий процесс в Visual Studio. Хотя мы можем использовать это для создания рабочих процессов просто с помощью Visual Studio (без SharePoint / WSS / MOSS / SP2010 или Designer). Но это не хорошая IDEA, так как требует внешнего видаработы по разработке для элементов, которые являются OOB. Наилучшим способом должно быть использование SPD .. или функций рабочих процессов с использованием MOSS.

Также создание рабочих процессов утверждения болезненно с использованием только VS .. Я скоро создаю одну вставку..

0 голосов
/ 12 марта 2012

Я решил проблему. Эта проблема была связана с корреляцией, и я должен был знать лучше. Каждая последовательность приема / отправки-ответа имела свою собственную локальную переменную __handle1 для дескриптора корреляции Send-Reply. Тем не менее, я пытался использовать это, чтобы сопоставить сообщение, чтобы разбудить последовательность с SoftExit. Я создал новый дескриптор корреляции __liveHandle, который инициализировал при выходе из последовательности запуска, а затем коррелировал с этим дескриптором в последовательности мягкого выхода - решено.

Спасибо @RonJacobs!

...