Как правильно загрузить рабочий процесс после его приостановки / сохранения? - PullRequest
3 голосов
/ 15 июня 2010

Используя эту статью MSDN в качестве примера для приостановки и возобновления, можно предположить, что это будет довольно просто. Вот как я "приостанавливаю" рабочий процесс ...

LastWfGuid = workflow.Id;
workflow.Unload();

Довольно просто, он должен сохраняться в хранилище экземпляров (которое я уже установил до этих двух строк), и я вижу записи в представлении Instance и InstancesTable. Когда я готов возобновить рабочий процесс, я делаю это ...

workflow = new WorkflowApplication( myActivity, myWfArgs );
workflow.InstanceStore = wfStore;
workflow.Load(LastWfGuid);

В этот момент я получаю InvalidOperationException с сообщением об исключении ...

Workflow inputs cannot be used with Load or LoadRunnableInstance, since they are only provided to new instances.

Если я не могу загрузить рабочий процесс, который был ранее сохранен, как я могу возобновить его снова? Я попытался просто позвонить Persist() вместо Unload(), и снаружи это выглядит нормально, и я не получаю никаких исключений. Но рабочий процесс продолжает работать, это не то, что я ищу. Я хочу сделать паузу, а затем возобновить рабочий процесс.

1 Ответ

3 голосов
/ 15 июня 2010

Удалите аргумент myWfArgs при создании приложения WorkflowApplication, используемого для загрузки существующего экземпляра рабочего процесса. Так вот так:

workflow = new WorkflowApplication(myActivity);
workflow.InstanceStore = wfStore;
workflow.Load(LastWfGuid);
...