Ошибка проверки WF во время выполнения - PullRequest
0 голосов
/ 02 февраля 2009

У меня есть два приложения Workflow Foundation (.NET 3.5 SP 1), которые прекрасно компилируются. В нем есть два условия декларативного правила. Оба очень просты, примеры:
-! this.Shutdown - this.Runtime == ноль

Проект создается правильно без ошибок и предупреждений, однако при запуске приложения происходит сбой, за исключением: 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 и воссоздать его, воссоздав два правила, но это не помогло.

Вопрос: что не так, что вызывает эту ошибку?

Некоторые вещи, которые я пробовал:

  • Размещение правил рабочего процесса в большем рабочем процессе не имеет значения для проблемы.
  • Эта проблема теперь затрагивает все рабочие процессы в решении (даже те, которые раньше работали).
  • Использование условия правила кода не имеет такой же проблемы - проблема как-то связана с файлом правил.
  • Восстановление рабочего процесса не помогло

Ответы [ 2 ]

0 голосов
/ 01 сентября 2009

В итоге обнаружена причина - она ​​была вызвана пробелами в имени класса, из-за чего в файле правил есть пробелы, что, похоже, и вызывает проблему.

Например, это приведет к ошибке:

альтернативный текст http://img512.imageshack.us/img512/661/clipboard01wdu.png

Однако это не будет:
альтернативный текст http://img140.imageshack.us/img140/9366/clipboard02t.png

0 голосов
/ 02 февраля 2009

Декларативные правила рабочего процесса не проверяются компилятором, поэтому здесь нет никакой помощи. Когда вы ссылаетесь на «это» в правиле, это означает рабочий процесс. Таким образом, ваши свойства Shutdown и Runtime должны быть объявлены на уровне рабочего процесса. Я предполагаю, что Runtime относится к WorkflowRuntime, и это довольно необычно, и не рекомендуется, чтобы оно было внутри вашего рабочего процесса, поэтому здесь может быть проблема с дизайном.

...