问题标签 [workflowservice]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1532 浏览

workflow - Workflow Foundation 4,执行 Workflow 的最佳方式

在问一个问题之前,在你们因为有几个类似的问题而生气之前,我想解释一下什么是项目要求。你会看到这个问题与所有其他问题不同。

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

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

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

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

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

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

0 投票
1 回答
772 浏览

wcf - 为什么将活动放在 Receive 和 SendReply 之间,而不是放在 Workflow Service 之后

我在 Workflow Services 上看到的大多数示例都将活动置于 Receive 和 SendReply 活动之间。但是,如果活动需要很长时间才能完成服务超时。我可以增加超时时间或将活动放在 SendReply 之后。是否有关于在哪里开展这些活动的最佳做法?

0 投票
1 回答
2648 浏览

c# - WCF 工作流服务 REST 接口

可能重复:
WF4/WCF 中的 RESTful 工作流服务端点

我正在尝试使 Windows Workflow Services 4.0 与 REST 接口一起工作。我有一个非常简单的工作流服务,名为“Service1”,带有一个 receiveRequest 和 sendResponse 活动。

默认情况下,WF 服务会自动生成实现的类和接口,但是我想强制 WF 服务使用我自己的支持 REST 的接口,而不是一些内部自动生成的接口。

界面如下:

但是,我在配置 XAML 以使用此接口时遇到了困难。我需要这样的 XAML 配置来指定服务合同名称是我自己的合同:

但是,当我运行此工作流服务时,出现以下异常:

在服务“Service1”实施的合同列表中找不到合同名称“wfService.IService”。

但是,在幕后创建的服务没有实现 IService 接口,我想知道如何扩展工作流引擎实例化的服务以实现我自己的接口(我在上面描述过)?

谢谢

0 投票
1 回答
969 浏览

.net - .NET Workflow 4 创建由启用 WCF 的工作流使用的自定义持久性存储

我想使用 WF 4 作为我项目的工作流引擎。我使用 WF 的活动是长期运行的(可能会持续数周或数月),因此我希望它使用持久性存储。我还想利用持久的延迟,以便我可以在事后几天发送通知。我的所有研究都为我指明了使用 IIS 中托管的工作流服务和 AppFabric 的方向。

我在本地机器上测试了这个场景,效果很好。我的工作流程持续存在,我的延迟在我想要的时候就开始了。我有一个问题:我公司定义的架构不允许服务层(IIS 中托管的 WCF 服务)直接与数据库层对话。我认为解决这个问题的一个好选择是编写一个自定义实例存储,该存储将通过数据访问层将调用路由到持久性数据库。我可以找到大量通过代码实现自定义实例存储的示例(即,workflowApplication.InstanceStore = customInstanceStore)。但是,启用 WCF 的服务没有代码,我找不到任何可以让我通过 web.config 配置持久性存储的示例。

启用 WCF 的工作流主机是否必须使用直接与数据库对话的内置 SQL 实例存储?

0 投票
1 回答
147 浏览

workflow-foundation-4 - 将 XAML 工作流嵌入到另一个 XAML 工作流中

我们有一种情况,其中有两个 XAML 工作流(WF1 和 WF2)。WF1 是 WF2 的超集。因此,虽然 WF2 在系统内独立于 WF1 执行,但我们希望 WF2 在 WF1 执行时在 WF1 的范围内执行。基本上在 WF1 的末尾有一个书签,在恢复该书签时,WF2 必须执行。

它们都在共享资源上运行,我们不能让这些 WF 的不同实例同时在我们的共享资源上运行。我们有一个队列机制来处理这个问题。

我想做的是在设计时以某种方式在 WF1 中构建此执行。因此,也许编写一个加载 WF2 的活动或以某种方式将 WF2 转换为编码活动并将其放入 WF1 等。我不想要的是必须复制 WF2 并将其放入 WF1 设计器中。此外,我们不希望在 WF1 中启动单独的主机进程来执行 WF2。

基本上我们的WF1和WF2都是在WorkflowServiceHost下运行的。它们不是传统的服务 WF(因此没有发送/接收活动),而是作为 WCF 服务公开的普通 WF。我们在 WorkflowServiceHost 中进行了大量自定义,涉及其持久性、跟踪等,我们的两个 WF 都从中受益。我想确保无论我们采取何种机制在 WF1 中启动 WF2,我们都不会失去这些好处。

PS:如果您想了解我们如何自定义这些 WF 的运行,您可以在此处从我的博客下载示例代码

0 投票
0 回答
218 浏览

wcf - 工作流服务可扩展性问题

我目前遇到工作流服务的一些问题。如果我以较短的顺序开始 4、5,它们可以正常工作,但是如果我增加这个值(从 ~10 开始),那么我会得到以下异常:

此通道不能再用于发送消息,因为输出会话由于服务器启动的关闭而自动关闭。通过将 DispatchRuntime.AutomaticInputSessionShutdown 设置为 false 来禁用自动关闭,或者考虑使用远程服务器修改关闭协议。

我认为问题在于我创建代理的方式。我使用以下代码提供代理,尝试重用现有的:

使用额外的“惰性”提供程序:

这样使用:

像这样初始化:

工作流服务由 IIS 托管,我添加了以下限制设置:

这应该足以满足我的需要。

我希望有人可以帮助我配置客户端和服务器以实现所需的可伸缩性(数百个按顺序启动并并行运行,使用 WorkflowInstance sql 存储)。

更新:我对所有服务都使用 NetTcpBinding。

更新 2:所有服务现在都在本地托管和使用。

谢谢弗朗西斯科

0 投票
1 回答
122 浏览

c#-4.0 - 收集上的工作流关联

我有以下工作流程

  1. 接收活动

1a。创建文档集合

  1. 发送活动(发送文档 ID 的集合)

  2. 接收活动(CorrelationHandle-single document Id)

2.发送活动

我在第一个发送活动和第二个接收活动中发送相关句柄的集合,我希望相关句柄作为单个文档 ID。

目前,我已经实现了 1 个工作流与 1 个文档 ID 的关联,但现在我希望将 1 个工作流关联到多个文档 ID。

0 投票
1 回答
246 浏览

c# - 如何获取workflowservicehost工作流状态

我有工作流说 WF1 托管在工作流服务主机中。
现在在客户端我想获取 WF1 的状态。
有什么办法可以得到状态。
我不想使用工作流跟踪来获取状态。

0 投票
1 回答
453 浏览

workflow-foundation - 为 Net.Msmq 启用 BufferedReceive 时无法获取 WF 服务元数据

我有一个托管在 AppFabric IIS 7/WAS 中的 WF 服务。它是为 Net.Msmq 配置的——这很好用。客户端很好地使用了服务。如果我将 WorkflowService 更改为允许 BufferedReceive,那么我将无法再导航到 xamlx 以获取元数据。错误如下:

*

“合同‘IInstructionServices’至少有一个操作用‘ReceiveContextEnabledAttribute’注释,但用于地址‘net.msmq://localhost/private/CSDInstructionProcessing/Instructions.xamlx’的合同端点的绑定不支持所需的绑定属性'IReceiveContextSettings'。请确保用于合约的绑定支持 ReceiveContext 功能"

*任何线索为什么?

0 投票
1 回答
557 浏览

c# - Windows 工作流服务 - 自定义服务主机。处理工作流事件

我将非常简单的工作流程作为服务托管。我只想处理此工作流程中的异常。

我的工作流程将“字符串”作为参数并尝试将其转换为 int。因此,每当我发送像“asasafs”这样的数据时,它都会失败并引发异常。非常简单 :)

我读过我可以创建自己的 WorkflowServiceHostFactory,但不幸的是我无法完成我的简单任务,这是我的实现:

我正在使用 Visual Studio 2k10 和 iisexpress,每当工作流引发异常时,调试器都不会中断我的任何事件处理程序。你知道如何正确地做吗?