WorkflowCreationEndpoint ResumeBookmark с заполненным ответом - PullRequest
1 голос
/ 09 сентября 2011

Я потратил несколько дней, пытаясь найти решение проблемы, которую собираюсь описать, я много гуглил и даже смотрел на справочный источник .NET 4 для активности SendReply и InternalSendReply.Но до сих пор я застрял.

Чтобы упростить жизнь наших конечных клиентов, я хочу заменить действия Receive и SendReply пользовательскими активациями и использовать вместо них закладки.

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

Конечная точка является производной от WorkflowHostingEndpoint, которая разрешает закладку, созданную в пользовательском действии (вместо получения).И я хочу другую деятельность вместо sendreply.Эти 2 должны коррелировать, и пользовательский sendreply отправляет ответ по открытому каналу через конечную точку при создании новой закладки.

Проблема в том, что я пока не нашел способ получить доступ к конечной точке responseContext изнутриМоя обычная активность отправки.С другой стороны, на стороне конечной точки, создающей рабочий поток, кажется, что я не в состоянии получать уведомления, когда рабочий процесс становится неактивным , и, кроме того, я не могу получить доступ к WorkflowExtensions изхост. Я что-то упустил?

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

Приложение workflowв обновлении платформы 1 есть несколько методов расширения, называемых RunEpisode, с перегруженным Func, называемым idleEventCallback.Там можно подключиться к OnIdle и получить расширение workflow, чтобы получить объект для отправки в ответ.

1 Ответ

0 голосов
/ 03 февраля 2012

Чтобы ответить на мой собственный вопрос, я попал в обход, используя функциональность ServiceBroker сервера SQL. Класс SqlDependency, где рабочий процесс прослушивает событие, которое запускается, когда рабочий процесс достигает действия, которое создает новую закладку в другом состоянии.

...