我可以使用标准工作流活动模板创建 WCF 工作流吗?

问题描述 投票:0回答:3

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

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

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

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

wcf workflow-foundation-4 wcf-discovery
3个回答
2
投票

从昨天开始我一直在试图找出同样的问题,现在我偶然发现了一个解决方法。添加新项目时,VS 2010 中没有简单工作流程(xaml)的模板。如果您创建 WCF WF 应用程序,您将获得 xamlx。我创建了一个 Workflow Console 应用程序,它给了我一个 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
投票

是的。

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.