Корреляция сообщений Workflow Foundation 4.0 и отчеты об ошибках - PullRequest
1 голос
/ 07 апреля 2010

У меня есть служба рабочего процесса, которая запускает и выполняет ряд различных операций (например, вызовы веб-службы).

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

Могут быть случаи, когда данные, которые я передаю в этот веб-сервис, являются ошибочными и требуют изменения. Поэтому мне нужно иметь возможность подключиться к этому запущенному (но отложенному) рабочему процессу и изменить локальные переменные рабочего процесса, а затем повторно запустить операцию.

Я посмотрел на корреляцию сообщений в рабочем процессе 4.0, чтобы добиться этого, но поскольку в моем запущенном экземпляре рабочего процесса активна задержка, любой второй вызов службы ничего не делает (это похоже на то, что задержка блокирует любые другие запросы) .

Я пытался установить для параметра CanCreateInstance значения true и false, но это не помогает.

Спасибо!

Ответы [ 2 ]

1 голос
/ 06 марта 2011

Вам нужно поместить действие Delay в контейнер Parallel, а также в него есть задача приема.Это означает, что он будет прослушивать запросы, ожидая обработки цикла.

Для примера того, как работает корреляция сообщений, я нашел пример Tailspin Travel очень полезным.Установите флажок «Получить утверждение» в поле «Ожидание подтверждения», чтобы увидеть, как связать запросы.

0 голосов
/ 09 апреля 2010

Не уверен, если это ответ на ваши проблемы, но это может быть просто. Если вы используете хранилище экземпляров рабочего процесса и продвижение свойств, у вас есть возможность изменить свойства в хранилище экземпляров для следующей загрузки рабочего процесса.

...