Workflow Foundation 4,执行工作流程的最佳方式

标签 workflow workflow-foundation-4 workflowservice

在提出问题之前,在你们因为有几个类似的问题而生气之前,我想解释一下项目要求是什么。您会发现该问题与其他问题不同。

  • 用户将使用 ReHosted WPF 应用程序创建工作流程,并将 xaml 文件上传到我们将提供的网络应用程序。
  • 启动工作流程执行的入口点位于该 Web 应用程序中。他们可以在自己的应用程序中使用 UI 或使用 API 函数。
  • 工作流程将长时间运行。

我知道托管的不同可能性。

最简单的方法是将其托管在ASP.NET Web 应用程序中,但由于我们不知道用户将上传哪种工作流,IIS AppDomain 回收可能会中断工作流线程执行。

WCF 工作流服务看起来不错,但事实上用户将上传自己的 xaml 工作流定义,这使得事情变得更加复杂。看起来我们必须创建类似核心工作流程的东西,公开为WCF服务,并且该工作流程将加载并执行内部工作流程(客户上传的xaml)。不确定在这种情况下参数如何传递到内部工作流程。

第三个选项,也是我认为最好的一个,是在 Windows 服务 中托管工作流执行。 Web应用程序和窗口服务之间的通信可以通过MSMQ进行。该解决方案的缺点可能是 boylerplate 代码,以确保 Web 应用程序和 win 服务之间的良好通信。

我缺少更好的解决方案吗?如果您需要更多详细信息,请发表评论。

最佳答案

我有类似的要求,并与“问题解决者”进行了长时间的讨论。

which one is better architecture for the WF4.0?

现在我的结论是将 Workflow 开发为托管在 IIS 上的工作流服务。

您可以遵循这两种方法。

  1. 将工作流需求划分为更小的事件,它们可以是独立的 XAML 事件,并在工作流服务 (xamlx) 上拖放这些事件来创建工作流。在需要时将这些内容与 InArgument 和 Outargument 以及关联上下文相关联。
  2. 在数据库中创建和存储工作流程并动态加载它们。 很棒的链接—— http://blogs.msdn.com/b/appfabric/archive/2011/06/16/how-to-load-wf4-workflow-services-from-a-database-with-iis-appfabric.aspx

关于Workflow Foundation 4,执行工作流程的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11124384/

相关文章:

workflow-foundation-4 - 是否有任何独立的应用程序可以导出 WF4 设计器功能?

c# - 使用 WorkflowServiceHost 托管工作流

git - 无法在 Github 工作流程中初始化 Solr

android - Intellij Navigate > 类...排除某些文件

workflow - 流程图:生产管理处理拆解项目的剩余部分

ruby-on-rails - Rails - 同一模型上有多个 "workflows"

git - 项目 repo 中的 Vagrantfile,良好的 Vagrant 工作流程?

c# - 插件注册中未显示自定义工作流事件

c# - 并行执行单个工作流实例

azure - 云平台上的 Workflow Foundation