Могу ли я запустить 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();