【问题标题】:WF validation error at runtime运行时 WF 验证错误
【发布时间】:2009-02-02 12:03:57
【问题描述】:

我有两个编译良好的工作流基础 (.NET 3.5 SP 1) 应用程序。它有两个声明性规则条件。两者都很简单,例子:
- !this.Shutdown - this.Runtime == null

项目正确构建,没有错误或警告,但是当我运行应用程序时它失败并出现异常:error 1342: Activity 'whileNotShutdown' validation failed: Can not find the condition "Shutdown not requested".

在另一个应用程序中,我在策略中使用了一个更复杂的规则集,它会生成以下异常:error 1398: Activity 'Defaults' validation failed: Can not find the rule set "Rule Set1". Check if rule set is defined in the rules file.

我尝试删除 .rules 文件并通过重新创建这两个规则来重新创建它,但这没有帮助。

问题是:导致此错误的原因是什么?

我尝试过的一些事情:

  • 将工作流规则放在更大的工作流中对问题没有影响。
  • 该问题现在影响解决方案中的所有工作流程(甚至那些曾经工作的工作流程)。
  • 使用代码规则条件不会出现同样的问题 - 问题与规则文件有关。
  • 重建工作流没有帮助

【问题讨论】:

    标签: workflow workflow-foundation rules


    【解决方案1】:

    编译器不检查声明性工作流规则,因此没有任何帮助。当您在规则中引用“this”时,它表示工作流程。因此,您的属性 Shutdown 和 Runtime 必须在工作流级别声明。我认为 Runtime 指的是 WorkflowRuntime,这有点不寻常,不建议在您的工作流程中使用,因此这里可能存在设计问题。

    【讨论】:

    • 我已经在工作流级别上尝试过它们,并且出现了同样的问题。运行时不是工作流运行时,而是系统中的另一个组件。
    【解决方案2】:

    最终找到原因——是类名中的空格导致的,导致规则文件中有空格,这似乎是问题的原因。

    例如这会导致错误:

    alt text http://img512.imageshack.us/img512/661/clipboard01wdu.png

    但这不会:
    alt text http://img140.imageshack.us/img140/9366/clipboard02t.png

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-04
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-11
      • 2014-10-29
      • 2014-05-20
      相关资源
      最近更新 更多