Хобрук: Ваш путь к мастерству в программировании

CallExternalMethod рабочего процесса ASP.NET

Я не уверен, что мне не хватает чего-то очевидного, поскольку при использовании рабочего процесса Windows из ASP.NET я действительно не знаю, как вернуть результат рабочего процесса обратно в рабочий процесс ASP.NET.

Мой рабочий процесс настроен для обработки внешнего события, поэтому моя веб-страница может вызывать его, что отлично работает, но как мне снова получить информацию? Нужно ли мне запрашивать объект Workflow, чтобы найти нужную мне информацию? Это кажется неправильным ...

Я думал, что могу использовать CallExternalMethod в рабочем процессе, но поскольку во время выполнения может быть только один экземпляр службы внешних данных рабочего процесса, я не уверен, как его можно «прикрепить» к отдельным страницам?

Все примеры, которые я нашел, похоже, используют пример рабочего процесса страницы, в котором вывод рабочего процесса (когда он вызывает CallExternalMethod) просто вызывает метод статического перенаправления. Если, например, я не хотел перенаправлять, а выводил результат рабочего процесса на страницу, как мне «захватить» эту информацию, чтобы ее можно было использовать на странице? (при условии, что среда выполнения вызывается из оболочки, как в примерах, поэтому нельзя просто выполнить Label1.Text = bla, поскольку к этой переменной нет доступа).

Изменить: Или это вопрос использования рабочего процесса для сохранения чего-либо в базе данных и запроса приложением ASP.NET заданных данных оттуда (поскольку GUID экземпляра может использоваться как PK?)

05.04.2009

  • Здесь вы должны знать, что вызовы CallExternalMethod ставятся в очередь. Они не обязательно обрабатываются немедленно, поэтому это работает, поэтому вполне нормально иметь только одну внешнюю службу обмена данными во время выполнения. Предложение Куу кажется мне победителем. 14.04.2009

Ответы:


1

Эта ссылка содержит информацию о передаче информации в рабочие процессы и из них:

http://books.google.com/books?id=s5eVXpNmQxgC&pg=PA32&dq=pro+windows+workflow+foundation#PPA241,M1

Что касается веб-страницы:
Единственное различие между веб-страницей и примером WinForm в приведенной выше ссылке заключается в том, что вам необходимо использовать MaualWorkflowSchedulerService (это передает поток, используемый веб-страницей, вместо создания нового для рабочего процесса. время выполнения).

Итак, скажем, вы вызываете ExternalMethod нажатием кнопки с чем-то вроде этого (DataEvents - это служба, которую вы добавляете во время выполнения для своих внешних методов Handle / Call):

    AddHandler DataEvents.DataReceived, AddressOf workflowEventsDataReceived    
    manualScheduler = WorkflowrunTime.GetService(GetType(Hosting.ManualWorkflowSchedulerService))
    DataEvents.OnGetDataReceived(New ExternalDataEventArgs(WorkflowInstance.InstanceId))
    manualScheduler.RunWorkflow(WorkflowInstance.InstanceId)

Тогда метод в workflowEventsDataReceived, который является целью CallExternalMethod внутри рабочего процесса (через службу, которую вы добавили в WorkflowrunTime), сможет обновлять все нужные метки.

Не уверен, что что-то из этого ясно, но дайте мне знать, если понадобится дополнительная помощь, я сам сталкивался с той же проблемой на прошлых выходных.

05.04.2009
Новые материалы

Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

«Очень простой» эволюционный подход к обучению с подкреплением
В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

Фишинг — Упаковано и зашифровано
Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..

ВЫ РЕГРЕСС ЭТО?
Чтобы понять, когда использовать регрессионный анализ, мы должны сначала понять, что именно он делает. Вот простой ответ, который появляется, когда вы используете Google: Регрессионный..

Не зря же это называют интеллектом
Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..

LeetCode Проблема 41. Первый пропущенный положительный результат
LeetCode Проблема 41. Первый пропущенный положительный результат Учитывая несортированный массив целых чисел, найдите наименьшее пропущенное положительное целое число. Пример 1: Input:..