问题标签 [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.
unit-testing - UnitTest WorkflowInstanceID 异常
我正在对 StateMachineWorkflow 进行单元测试,我通过单击我的测试项目来创建我的测试方法,然后我创建了 Add - UnitTest。在项目窗口中,我选择要测试的工作流以及其中的所有方法。
Visual Studio 在我的测试项目中生成了一个带有工作流访问器的测试参考文件夹。它还生成了测试所需的所有 TestMethod()。所有测试方法都使用 MyWorkflow_Accessor 目标 = new MyWorkflow_Accessor()。当我需要调用一个函数时,我只需执行类似 target.SendEmail() 的操作。
一切正常,除了一件事:我不能使用 Workflow 的 WorkflowInstanceId,当代码到达使用它的行时,它会在 Workflow 中引发异常,“这是一个无效的设计时操作。你只能执行运行时操作。 ” 是否可以通过代码注入 WorkflowID?这种情况有什么解决方法吗?我在很多函数中使用 WorkflowInstanceId 并且更改 Workflow 代码以匹配我的测试似乎不是一个好主意,因为我相信问题出在测试中而不是在工作流中。
workflow-foundation - 强制删除 Windows 工作流
我有一个相当大的 Windows 工作流实现,有时我必须更新工作流。我们时不时会遇到工作流定义被破坏的情况,因此会引发 IndexOutOfRangeException。如果 WF 允许您使用 Terminate() 或 Abort() 方法终止工作流,这将不是问题。
我知道有两种解决方案。第一个涉及使用 Microsoft 编写的 .SQL 脚本删除和添加工作流表。另一种是修改定义并将其保存回 percistant 表 - 这是一项非常繁琐的任务,不建议胆小的人使用。
我想知道是否存在人们害怕考虑的第三种选择 -从 dbo.InstanceState 和 dbo.WorkflowInstance 表中删除记录。 下面是一个可以解决问题的脚本:
这个简单的脚本适用于我的情况。我只是想向社区展示它,以了解这种方法的任何优点或缺点。
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:
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 中是否有一些新的东西可以帮助我解决这个问题?
c# - 如何存储单个规则?
我的软件需要有某种规则库。无论如何我可以序列化一条规则吗?
为什么是单一规则?因为在实际执行规则引擎之前,我希望能够将一些特定规则添加到我的 RuleSet 中,并通过windows 工作流规则引擎执行该 RuleSet 。
根据此处给出的示例,我知道我可以序列化 RuleSet?
以下是其完成方式的简要说明:
1.创建对折扣属性的引用this.Discount
2. 创建对 orderValue 属性的引用
3. 在 orderValue 对象上定义条件
4. 定义规则动作
5. 创建规则集
6. 序列化规则集
7. 执行规则集
您可以在开头提到的链接中获得完整的示例。Pt 6 描述了如何持久化规则集。但我想知道我们是否可以序列化一个规则,它只不过是一个代码域条件表达式和一组语句(动作)(再次由代码域表示)。
或者在某处存储单个规则的更好方法是什么?
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 子进程。
那么瓶颈/缓慢在哪里,我们如何解决这种偶尔的停顿?
有什么建议么?
谢谢你的时间。