Не удается сохранить активность в рабочем процессе wf4 - PullRequest
2 голосов
/ 13 октября 2011

У меня проблема с сохранением рабочего процесса в wf4.

Я не могу сохранить рабочий процесс с помощью действия Persist.Также я не могу сохранить рабочий процесс из метода, содержащегося в классе, который я внедрил в рабочий процесс, который я затем вызываю изнутри рабочего процесса с помощью действия 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 Ответ

4 голосов
/ 14 октября 2011

Хорошо. Мы с этим разобрались.

Есть объект данных, который не сериализуется хорошо. Когда Persist поражает его, он молча падает (что плохо).

Мы подозреваем, что workflowApp.Persist () работает, потому что рабочий процесс не полностью инициализирован за время между

workflowApp.Run();
workflowApp.Persist(); 
...