Я потратил несколько дней, пытаясь найти решение проблемы, которую собираюсь описать, я много гуглил и даже смотрел на справочный источник .NET 4 для активности SendReply и InternalSendReply.Но до сих пор я застрял.
Чтобы упростить жизнь наших конечных клиентов, я хочу заменить действия Receive и SendReply пользовательскими активациями и использовать вместо них закладки.
Я реализую центральный веб-сервис, который может маршрутизировать к правильному экземпляру рабочего процесса, этот рабочий процесс изменяет значение закладки и, наконец, создает новую закладку, возвращая измененное значение закладки.Это довольно сложно уже с WorkflowServiceHostFactory, который добавляет Поведения и Присоединяет DataContractResolver к конечной точке.
Конечная точка является производной от WorkflowHostingEndpoint, которая разрешает закладку, созданную в пользовательском действии (вместо получения).И я хочу другую деятельность вместо sendreply.Эти 2 должны коррелировать, и пользовательский sendreply отправляет ответ по открытому каналу через конечную точку при создании новой закладки.
Проблема в том, что я пока не нашел способ получить доступ к конечной точке responseContext изнутриМоя обычная активность отправки.С другой стороны, на стороне конечной точки, создающей рабочий поток, кажется, что я не в состоянии получать уведомления, когда рабочий процесс становится неактивным , и, кроме того, я не могу получить доступ к WorkflowExtensions изхост. Я что-то упустил?
Возможное решение, которое я имею в виду, может заключаться в том, чтобы не использовать WorkflowServiceHost, но тогда я теряю много функций AppFabric.
Приложение workflowв обновлении платформы 1 есть несколько методов расширения, называемых RunEpisode, с перегруженным Func, называемым idleEventCallback.Там можно подключиться к OnIdle и получить расширение workflow, чтобы получить объект для отправки в ответ.