2012-01-05 72 views
0

im想知道是否可以从文件加载xamlx wcf工作流并使用WorkflowApplication运行它?我可以使用WorkflowApplication类运行WCF工作流服务吗?

期望的结果:未取得

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

为什么需要将WorkflowService作为WorkflowApplication运行? – 2012-01-11 01:07:27

+0

我们有一些工作流版本控制系统,但WCF路由器让我们头疼,所以我想尝试构建Windows服务,它可以加载工作流应用程序实例中的所有工作流服务,并执行一些“硬编码”路由 – aron 2012-01-13 09:59:49

+0

使用我的第二个答案提示可以在WindowsService中托管一个WorkflowService,我做到了 – 2012-01-13 12:04:38

回答

3

提取WorkflowService根和wfApp

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

运行仍然不理解运行在一个WorkflowApplication一个WorkflowService的原因。请记住,反向(将接收活动作为WorkflowService运行的活动工作流程)完全有效。

0

WorkflowApplication暴露端点。使用WorkflowServiceHost中,而不是

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

host.Open(); 
+0

是的,但我想做的相反,从WCF worfklow服务剥离WCF包装 – aron 2012-01-10 08:39:41

+0

嗯现在我明白了......当你在例子中执行代码会发生什么?您是否试图提取WorkflowService Root并在wfapp上运行它? – 2012-01-10 13:57:26

+0

ActivityXamlServices.Load抛出异常 – aron 2012-01-13 09:57:14

相关问题