Workflow Foundation 4 - DeclarativeServiceLibrary - ошибка при вызове второй последовательности ReceiveAndSendReply - VS2010 - PullRequest
1 голос
/ 13 марта 2010

Я создал декларативную библиотеку обслуживания с использованием VS2010 бета 2,
Пожалуйста, проверьте это изображение последовательной службы
alt text

Ниже приведен код, используемый для вызова этих двух действий `int? данные = 123;

        ServiceReference1.ServiceClient client1 = new ServiceReference1.ServiceClient();
        string result1 = client1.GetData(data);

        //This line shows error :(
        string result2 = client1.Operation1();

        Response.Write(result1 + " ::  ::" + result2);`  

client1.GetData работает отлично, но client1.Operation1 показывает следующую ошибку. Пожалуйста, дайте мне знать, как это исправить.

К входящему сообщению службы не привязан контекст, и текущая операция не помечена как «CanCreateInstance = true». Для связи с этой службой проверьте, поддерживает ли входящая привязка протокол контекста и инициализирован ли действительный контекст.

1 Ответ

2 голосов
/ 14 марта 2010

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

Здесь - сообщение в блоге, описывающее, как использовать корреляцию сообщений.

В пользовательском интерфейсе используйте CorrelationInitializer, чтобы установить корреляцию с первым действием приема, и используйте CorrelatesOn со вторым действием получения.

...