2010-03-05 5 views
2

Использование Visual Studio 2010 RC/.Net 4.0WCF Workflow Service один экземпляр корреляционная

У меня есть службы WCF документооборота с три приема деятельности определены, в основном StartProcessing, StopProcessing и GetProcessingStatus. Это длинная служба, которая продолжает опрос внешней службы для данных, как только вызывается StartProcessing, пока не вызывается StopProcessing.

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

ответ

0

Я думаю, что то, что вы хотите, невозможно, вам нужно соотнести, WWF не знает, как его выполнить. Если будут получены два параллельных вызова, они будут использовать один и тот же объект с неожиданными результатами.

В wcf это возможно, вы можете установить сеанс в клиенте, или вы можете управлять созданием объекта wcf, но в WWF я думаю, что у вас даже нет таких параметров.

+0

Как вы можете думать, чтобы внутренне коррелировать? Должна ли корреляция коррелировать с данными в запросе? Я пытался выяснить способ инициализации корреляции с некоторым начальным значением и скорректировать все действия по этому поводу ... но не повезло. – BCarter

+0

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

1

Вы можете, например, сопоставлять константу. Отредактируйте XPath в корреляции запросов, чтобы вернуть номер 1, например.