Windows Workflow Foundation 4.0 действие выбора, содержащее действие задержки

Я работаю с бета-версией 2 Visual Studio 2010, чтобы получить более глубокое понимание WF4. Я создал рабочий процесс, в котором есть действие выбора, содержащееся в действии If. В действии выбора у меня есть два триггера, один из которых содержит набор задержки с интервалом времени 10 секунд, а другой триггер имеет закладку для утверждения менеджером. Я пытаюсь использовать задержку, чтобы установить для переменной «состояние» значение «Истекло», если менеджер не утверждает в отведенное время. Это очень похоже на то, что сделал Мэтт Милнер в своем сообщении по адресу: http://msdn.microsoft.com/en-us/library/ee342461.aspx, за исключением того, что он использует действие DoWhile, тогда как мне нужно использовать действие If, которое я описал здесь. Я также использую постоянство и размещаю рабочий процесс из приложения ASP.Net. Мне интересно, вызвана ли проблема, которую я вижу, тем, что интернет-браузер не поддерживает рабочий процесс в памяти, и нет возможности перезапустить рабочий процесс после завершения задержки.


person Russ Clark    schedule 11.01.2010    source источник
comment
В чем проблема, которую вы видите?   -  person Chris Gillum    schedule 12.01.2010
comment
У меня есть Pick, который содержит 2 триггера, в одном есть Delay с Action, у которого есть только Assign, который устанавливает значение строковой переменной с именем state в Expired. В другом триггере есть закладка с некоторым кодом для обработки утверждения, если закладка возобновляется. Закладка работает нормально, если я возобновляю ее до истечения времени задержки. Проблема в том, что после того, как период задержки прошел и состояние установлено на «Истекло», я думаю, что рабочий процесс должен завершиться и быть удален из хранилища постоянства, но он не удаляется.   -  person Russ Clark    schedule 12.01.2010
comment
Ваш рабочий процесс сохраняется нормально, когда ветви BookmarkWait и Delay простаивают, верно?   -  person Tim Lovell-Smith    schedule 17.01.2010


Ответы (1)


Если вы используете WorkflowServiceHost или XAMLX для размещения рабочего процесса, вам потребуется настроить WorkflowManagementService для перезагрузки и перезапуска рабочего процесса. Если вы используете WorkflowApplication, вы несете ответственность за перезагрузку рабочего процесса после его сохранения.

Но, как сказал Крис: здесь может быть полезно немного больше информации о том, что на самом деле идет не так.

person Maurice    schedule 12.01.2010
comment
Я использую WorkflowApplication. У нас есть аналогичный рабочий процесс .Net 3.5, в котором есть обработчик событий Expired с задержкой в ​​14 дней. По прошествии 14 дней обработчик событий вызывается для нас автоматически, и код в обработчике событий Expired запускается без перезагрузки рабочего процесса в приложении для размещения. Изменилось ли это в рабочем процессе .Net 4.0 при использовании действия Pick с закладками и задержками аналогично обработчику событий для имитации рабочего процесса конечного автомата? - person Russ Clark; 12.01.2010
comment
Хорошо спасибо! Знаете ли вы какие-нибудь хорошие образцы или руководства по использованию WorkflowServiceHost? Я начинаю изучать использование этого, но мне трудно это понять. - person Russ Clark; 12.01.2010
comment
Начните с приложения-службы рабочего процесса. Файл XAMLX (обратите внимание на дополнительный X) размещается в IIS / Casini с помощью WorkflowServiceHost. - person Maurice; 12.01.2010