1

是否可以使用标准(活动模板)工作流活动模板创建 WCF 工作流?如果是这样,我在哪里可以找到一些不使用标准 WCF 服务模板(WCF 工作流服务模板)的示例?

说明:我试图在运行时发现、加载和运行工作流,包括带有 WCF 活动的工作流。标准工作流被编译成类型(这使得它们易于发现),但是“WCF 工作流服务”模板是一个xamlx文件,它作为内容添加并在运行时作为清单流加载。这使得在运行时的发现变得困难。

我认为不需要使用此模板来创建服务,因为 WorkflowServiceHost 可以在其构造函数中使用 Activity。

我试图尽可能简化开发新 WCF 服务的任务,以便在运行时发现、加载和“执行”(即加载和侦听)。

4

3 回答 3

2

是的。

此博客文章描述了如何使用 SVC 扩展而不是 XAMLX,并使用编译工作流来执行此操作。注释还添加了一些如何删除 SVC 文件的详细信息。您需要使用 WorkflowServiceHostFactory 作为工厂来连接。你也可以在自托管时做类似的事情。

于 2010-07-22T13:19:05.077 回答
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();
于 2010-07-22T19:21:06.927 回答
0

实际上,我只是发现添加新项目中的“活动”模板是 xaml,因此无需创建“工作流控制台应用程序”来获取 xaml 文件。

于 2010-07-22T19:33:35.780 回答