У нас есть бизнес-логика для управления жизненным циклом документа.
Это реализовано с использованием Workflow Foundation 4 и WF Persistence.Во время выполнения рабочего процесса определенные закладки создаются в рабочем процессе, и запланированное задание периодически находит все определенные закладки и возобновляет рабочий процесс (Выполняемое действие выполняет некоторую обработку и снова добавляет рабочий процесс в закладки, чтобы впоследствии можно было возобновить рабочий процесс.)
Теперь для некоторых запущенных экземпляров рабочего процесса мы получаем следующую ошибку:
System.Runtime.DurableInstancing.InstanceNotReadyException was unhandled
Message=The execution of an InstancePersistenceCommand was interrupted because the instance '99ce9413-5b17-4de0-a453-46891509e032' has not yet been persisted to the instance store.
Source=System.Runtime.DurableInstancing
StackTrace:
at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.Runtime.DurableInstancing.InstancePersistenceContext.OuterExecute(InstanceHandle initialInstanceHandle, InstancePersistenceCommand command, Transaction transaction, TimeSpan timeout)
at System.Runtime.DurableInstancing.InstanceStore.Execute(InstanceHandle handle, InstancePersistenceCommand command, TimeSpan timeout)
at System.Activities.WorkflowApplication.PersistenceManager.Load(TimeSpan timeout)
at System.Activities.WorkflowApplication.LoadCore(TimeSpan timeout, Boolean loadAny)
at System.Activities.WorkflowApplication.Load(Guid instanceId, TimeSpan timeout)
at System.Activities.WorkflowApplication.Load(Guid instanceId)
ранее эти же экземпляры были успешно загружены.
У меня есть пара вопросов, связанных с этим исключением:
- Когда мы можем получить это исключение?
- Если мы получим это исключение, есть ли какой-нибудь изящный способ обработать его, чтобы те же экземпляры могли быть возобновлены позже?
- Также есть ли способ исправить существующие экземпляры рабочего процесса, которые не могут быть возобновлены из-за этого исключения?