是否可以使用标准(活动模板)工作流程活动模板创建WCF工作流程?如果是这样,我在哪里可以找到一些不使用标准WCF服务模板的样本( WCF工作流服务模板)?
说明:我正在尝试在运行时发现,加载和运行工作流,包括使用WCF活动的工作流。标准工作流被编译为类型(这使得它们易于发现),但“WCF工作流服务”模板是 xamlx 文件,该文件作为内容添加并在运行时作为清单流加载。这使得在运行时发现变得困难。
我认为不需要使用此模板来创建服务,因为WorkflowServiceHost可以在其构造函数中使用Activity。
我正在尝试保持开发新WCF服务的任务,以便在运行时尽可能简化地发现,加载和“执行”(即加载和监听)。
答案 0 :(得分:2)
是的。
This blog post描述了如何使用SVC扩展而不是XAMLX,并使用编译工作流来执行此操作。注释添加了一些如何摆脱SVC文件的细节。您需要使用WorkflowServiceHostFactory作为工厂来连接。你也可以在自托管时做类似的事情。
答案 1 :(得分:2)
自昨天以来,我一直试图弄清楚这一点,现在我偶然发现了一个解决方法。添加新项目时,VS 2010中没有用于简单工作流程(xaml)的模板。如果您创建 WCF WF应用,则会获得 xamlx 。我创建了一个工作流程控制台应用程序,它给了我一个 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 :(得分:0)
实际上我只是想到添加新项目中的“Activity”模板是xaml所以不需要创建“Workflow控制台应用程序”来获取xaml文件。