Могу ли я запустить WCF Workflow Service, используя класс WorkflowApplication?

Мне интересно, можно ли загрузить рабочий процесс xamlx wcf из файла и запустить его с помощью WorkflowApplication?

Желаемый результат:

        using (Stream xaml = File.OpenRead("Service1.xamlx"))
        {
            activity = ActivityXamlServices.Load(xaml);
        }
        var workflowApplication = new WorkflowApplication(activity);
        workflowApplication.Run();

2 ответа

Решение

Извлеките Root WorkflowService и запустите его на wfApp

var svc = (WorkflowService)XamlServices.Load("c:\\path\\Service1.xamlx");
WorkflowApplication wfApp = new WorkflowApplication(svc.Body);
wfApp.Run();

Все еще не понимая причину для запуска WorkflowService в WorkflowApplication. Имейте в виду, что обратное (запустить рабочий процесс с действием получения в качестве WorkflowService) полностью допустимо.

Приложение WorkflowApplication не было создано для предоставления конечных точек. Вместо этого используйте WorkflowServiceHost

WorkflowServiceHost host = new WorkflowServiceHost(activityLoadedFromXaml, baseAddress);
host.Description.Behaviors.Add(new System.ServiceModel.Description.ServiceMetadataBehavior() { HttpGetEnabled = true });
host.AddDefaultEndpoints();

host.Open();
Другие вопросы по тегам