Я хотел бы реализовать следующий сценарий рабочего процесса:
У меня есть служба документооборота с двумя филиалами.Операция 2 (получение) связана с CorrelationHandle «handle2», который инициализируется из заголовка сообщения.
Поток следующий:1) Кто-то вызывает Operation1 и инициализирует обработчик корреляции для Operation2.Таким образом, дело в том, что значение корреляции для Операции2 отличается от Операции1 и должно быть получено во время выполнения при выполнении Операции1.2) Используя значение корреляции, клиент может вызвать Operation2.3) Если корреляция не верна, Операция2 должна быть выполнена, но с пользовательской логикой.Проблема в том, что когда я звоню в первую службу, я получаю исключение:
CorrelationHandle уже используется с BookmarkScope '{идентификатор области видимости закладки x}', поэтому его нельзя использовать с BookmarkScope '{идентификатор области видимости закладки}}
Отладка показывает, что даже если я вызываю Operation1, только «handle2» из Operation2 также инициализируется с некоторым значением в операции Receive2 !!!так что я, кажется, не могу повторно инициализировать его.Есть идеи как это можно исправить?
ОБНОВЛЕНИЕ:
Я приложил файл с исходным кодом, чтобы вы могли воспроизвести проблему.Просто запустите Operation1.
http://dl.dropbox.com/u/27847776/WorkflowCorrelation.zip
Заранее спасибо,-Petro