2012-01-05 107 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

相關問題