问题标签 [workflow-foundation-3]

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 回答
169 浏览

unit-testing - UnitTest WorkflowInstanceID 异常

我正在对 StateMachineWorkflow 进行单元测试,我通过单击我的测试项目来创建我的测试方法,然后我创建了 Add - UnitTest。在项目窗口中,我选择要测试的工作流以及其中的所有方法。

Visual Studio 在我的测试项目中生成了一个带有工作流访问器的测试参考文件夹。它还生成了测试所需的所有 TestMethod()。所有测试方法都使用 MyWorkflow_Accessor 目标 = new MyWorkflow_Accessor()。当我需要调用一个函数时,我只需执行类似 target.SendEmail() 的操作。

一切正常,除了一件事:我不能使用 Workflow 的 WorkflowInstanceId,当代码到达使用它的行时,它会在 Workflow 中引发异常,“这是一个无效的设计时操作。你只能执行运行时操作。 ” 是否可以通过代码注入 WorkflowID?这种情况有什么解决方法吗?我在很多函数中使用 WorkflowInstanceId 并且更改 Workflow 代码以匹配我的测试似乎不是一个好主意,因为我相信问题出在测试中而不是在工作流中。

0 投票
1 回答
849 浏览

workflow-foundation - 强制删除 Windows 工作流

我有一个相当大的 Windows 工作流实现,有时我必须更新工作流。我们时不时会遇到工作流定义被破坏的情况,因此会引发 IndexOutOfRangeException。如果 WF 允许您使用 Terminate() 或 Abort() 方法终止工作流,这将不是问题。

我知道有两种解决方案。第一个涉及使用 Microsoft 编写的 .SQL 脚本删除和添加工作流表。另一种是修改定义并将其保存回 percistant 表 - 这是一项非常繁琐的任务,不建议胆小的人使用。

我想知道是否存在人们害怕考虑的第三种选择 -从 dbo.InstanceState 和 dbo.WorkflowInstance 表中删除记录。 下面是一个可以解决问题的脚本:

这个简单的脚本适用于我的情况。我只是想向社区展示它,以了解这种方法的任何优点或缺点。

0 投票
1 回答
238 浏览

jquery - jQuery 的 .hover() 事件处理程序中的某些代码不执行

我正在尝试实现一个简单的交互:当鼠标光标悬停在特定<li>元素上时,隐藏元素会显示在悬停元素的顶部。隐藏元素只是一个出现的小按钮栏,以便用户可以进一步交互。我有一个<ul>包含一堆元素的<li>元素,这些元素使用 Zurb 的 Foundation 进行样式设置,以便项目显示为块网格 - 因此嵌套<ul>的 's.

悬停处理程序似乎工作得很好,因为无论我移动光标多快或它落在哪里,调试日志都完美地写入控制台。但是,.show() 和 .hide() 的切换从来都不是一致的。在某些情况下,当光标进入有<li>问题的项目时,按钮栏会出现,而在其他情况下,则不会。有时当光标退出<li>元素时,按钮栏永远不会隐藏。最令人费解的是,调试日志按预期调用,但处理程序中的其他代码行却没有。有人知道解决方法吗?我试过hoverIntent,但结果仍然存在。我认为这可能是因为<li>'s 是水平排列的,这可能会导致这个问题,但我不确定。如何确保 .hover() 方法的行为一致?

这是问题的一个jsfiddle:http: //jsfiddle.net/DdWrD/6/

我从一些 PHP 构建标记:

在我希望出现在悬停上的按钮栏的 SCSS 样式中

这是驱动悬停事件的 Javascript:

0 投票
1 回答
1210 浏览

asp.net - 在 ASP.Net 中创建 Windows Workflow Foundation 规则

是否可以从 ASP.Net 应用程序创建和配置 Windows Workflow Foundation 规则?有System.Workflow.Activities.Rules.Design.RuleSetDialog适用于 Windows 窗体项目的,但是对于使用 Razor 视图引擎的 ASP.Net MVC 项目是否有一些等价物?

无论如何,我需要能够从 ASP.Net 客户端中创建规则,将它们保存在数据库中并稍后在服务中评估规则。WF4 中是否有一些新的东西可以帮助我解决这个问题?

0 投票
0 回答
364 浏览

c# - 如何存储单个规则?

我的软件需要有某种规则库。无论如何我可以序列化一条规则吗?

为什么是单一规则?因为在实际执行规则引擎之前,我希望能够将一些特定规则添加到我的 RuleSet 中,并通过windows 工作流规则引擎执行该 RuleSet 。

根据此处给出的示例,我知道我可以序列化 RuleSet?

以下是其完成方式的简要说明:

1.创建对折扣属性的引用this.Discount

2. 创建对 orderValue 属性的引用

3. 在 orderValue 对象上定义条件

4. 定义规则动作

5. 创建规则集

6. 序列化规则集

7. 执行规则集

您可以在开头提到的链接中获得完整的示例。Pt 6 描述了如何持久化规则集。但我想知道我们是否可以序列化一个规则,它只不过是一个代码域条件表达式和一组语句(动作)(再次由代码域表示)。

或者在某处存储单个规则的更好方法是什么?

0 投票
1 回答
189 浏览

c# - Windows Workflow Foundation 3 在并行活动中等待

我有一个工作流程,其中活动的执行顺序是:

  • 代码活动1

  • 代码活动2

  • 代码活动3

  • 代码活动4

  • 代码活动5

  • 代码活动6

  • 代码活动8

  • 代码活动7

wwf 使用的规则显然是每个分支的活动轮流执行。这对我的大多数活动来说都可以,但有一个例外:我在第一个分支中有一个活动需要在第二个分支的活动之前执行。我知道我可以将第二个分支的活动放在这个活动之前,但这会使我现有的工作流程更难理解。每个分支都有在我的应用程序的某些领域工作的活动。

我正在寻找某种“等待活动”,在满足某些条件之前不会执行。重要的部分是 id 不会暂停当前线程,因为那将不允许第一个分支的活动继续。

在此处输入图像描述

0 投票
0 回答
66 浏览

c# - C# NET 3.5 Windows Workflow Foundation - 并发生成缓慢

我搜索了 Stackoverflow 和 Google,但找不到适合我情况的答案。这是我的设计。

1)我定义了两个状态机工作流程(父母和孩子)。父 WWF 监督子 WWF 的状态,子 WWF 是实际执行给定消息任务的人。

2) 父 WWF 生成 500 个子 WWF (instance.Start())。然后使用父 WWF 内的复制器活动控制(并行执行模式),触发子启动事件。

3) 代码托管在 VM 中(8 GB RAM,4 个 CPU 内核,具有自己的应用程序池的 IIS 7.0)。

我注意到执行相同代码的两种不同行为:

A) 有时执行只需要 8 秒即可完成所有 500 个儿童 WWF 的处理,这非常棒。

B) 然而,在父 WWF 中为所有 500 个子对象执行 Instance.Start() 之后,有时复制器活动只是挂起 30-40 秒,什么也不做,然后每个子 WWF 几乎按顺序处理。因此,完成之前在 8 秒内完成的相同工作大约需要 300-400 秒。

根据我的发现,我认为这一切都与线程池管理有关。由于我的代码不直接处理 ThreadPool.QueueWorkItem() 并且 WWF 实际上在幕后的不同线程上工作,因此我对 WWF 的线程管理几乎没有控制权。

在场景 B 中,当我观察系统性能时,CPU 在几秒钟内上升到 80%,然后下降。之后 30-40 秒内没有任何活动,然后它才真正开始处理每个 WWF 子进程。

那么瓶颈/缓慢在哪里,我们如何解决这种偶尔的停顿?

有什么建议么?

谢谢你的时间。