Могу ли я создать рабочий процесс WCF, используя стандартные шаблоны действий рабочего процесса? - PullRequest
1 голос
/ 21 июля 2010

Можно ли создать рабочий процесс WCF с использованием стандартных ( действие шаблон) шаблонов действий рабочего процесса?И, если да, где я могу найти некоторые примеры, которые НЕ используют стандартный шаблон службы WCF ( шаблон WCF Workflow Service )?

Объяснение: Я пытаюсь обнаружить, загрузить и запустить рабочие процессы во время выполнения, включая рабочие процессы с действиями WCF.Стандартные рабочие процессы компилируются в типы (что облегчает их обнаружение), однако шаблон «Служба рабочих процессов WCF» представляет собой файл xamlx , который добавляется как контент и загружается как поток манифеста во время выполнения.Это затрудняет обнаружение во время выполнения.

Я не считаю необходимым использовать этот шаблон для создания службы, поскольку WorkflowServiceHost может принимать Activity в своем конструкторе.

Я пытаюсь сохранить задачуразработка новой службы WCF, которая должна быть обнаружена, загружена и «выполнена» (то есть загружена и прослушивается) во время выполнения как можно более упорядоченной.

Ответы [ 3 ]

2 голосов
/ 22 июля 2010

Я пытался понять то же самое со вчерашнего дня, и теперь я наткнулся на обходной путь.В VS 2010 нет шаблона для простого рабочего процесса (xaml) при добавлении нового элемента.Если вы создаете WCF WF Application , вы получаете xamlx .Вместо этого я создал Консольное приложение Workflow , которое дало мне файл xaml , который я скопировал в свой рабочий проект.Как только это было сделано, хостинг стал простым с помощью WorkflowServiceHost.

        string uri = "http://localhost:8008/MyService"; 
        WorkflowServiceHost wsh = new WorkflowServiceHost(new Workflow1(), new Uri(uri));
        ServiceMetadataBehavior metadataBehavior = new ServiceMetadataBehavior();
        metadataBehavior.HttpGetEnabled = true;
        wsh.Description.Behaviors.Add(metadataBehavior);
        wsh.AddServiceEndpoint("IService", new BasicHttpBinding(), uri);
        wsh.Open();
2 голосов
/ 22 июля 2010

Да, это так.

В этом блоге описывается, как использовать расширение SVC вместо XAMLX, и для этого используется рабочий процесс компиляции. Комментарии добавляют некоторые детали, как избавиться от файла SVC также. Вам нужно использовать WorkflowServiceHostFactory в качестве Фабрики, чтобы соединить вещи. Вы также можете сделать нечто подобное при самостоятельном размещении.

0 голосов
/ 22 июля 2010

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

...