Не удается сохранить активность в рабочем процессе wf4
У меня проблема с сохранением рабочего процесса в wf4.
Я не могу сохранить рабочий процесс с помощью Persist Activity. Также я не могу сохранить рабочий процесс из метода, содержащегося в классе, который я внедрил в рабочий процесс, который я затем вызываю изнутри рабочего процесса с использованием действия InvokeMethod
Если я сделаю:
workflowApp = new WorkflowApplication(new actBTX(), inParams);
workflowApp.Run();
workflowApp.Persist();
в фабричном методе, который создает рабочие процессы, я вижу, что рабочий процесс сохраняется.
Я проверил свои рабочие процессы, чтобы увидеть, нахожусь ли я в NoPersistZone, используя:
var prop = context.Properties.Find("System.Activities.NoPersistProperty");
IsInNoPersistScope.Set(context, prop != null);
и, кажется, нет.
Тот факт, что я могу сохраняться, когда я "вне" рабочего процесса, подсказывает мне, что это не проблема с типами переменных, которые находятся в рабочем процессе.
Если постоянство не удается, он останавливает весь рабочий процесс, если я использую действие Persist. Вызов метода выдает исключение:
Exception: The operation did not complete within the allotted timeout of 00:02:00
Есть идеи?
1 ответ
Хорошо, мы решили это.
Есть объект данных, который не сериализуется хорошо. Когда Persist поражает его, он молча падает (что плохо).
Мы подозреваем, что workflowApp.Persist() работает, потому что рабочий процесс не полностью инициализирован во время между
workflowApp.Run();
workflowApp.Persist();