Возможно, любой из вас может помочь мне с этой проблемой раздражения.У меня давно запущен рабочий процесс, который используется долго работающим приложением.
Я использую SqlWorkflowInstanceStore для сохранения.
Я установил DefaultInstanceOwner, чтобы можно было перезагрузить рабочие процессы при следующем запуске приложения.
InstanceHandle handle = workflowInstanceStore.CreateInstanceHandle();
InstanceView view = workflowInstanceStore.Execute(handle,
new CreateWorkflowOwnerCommand(), TimeSpan.FromSeconds(30));
handle.Free();
workflowInstanceStore.DefaultInstanceOwner = view.InstanceOwner;
и удалить его при выходе из приложения:
var deleteOwnerCmd = new DeleteWorkflowOwnerCommand();
InstanceHandle handle = workflowInstanceStore.CreateInstanceHandle();
workflowInstanceStore.Execute(handle, deleteOwnerCmd, TimeSpan.FromSeconds(30));
handle.Free();
Всехорошо работает при обычном использовании приложения.Проблема возникает, если Windows переходит в спящий режим.Когда он возвращается из спящего режима, любая другая операция с workflowInstanceStore выдает:
System.Runtime.DurableInstancing.InstanceOwnerException: The execution of an InstancePersistenceCommand was interrupted because the instance owner registration for owner ID 'GUID' has become invalid. This error indicates that the in-memory copy of all instances locked by this owner have become stale and should be discarded, along with the InstanceHandles. Typically, this error is best handled by restarting the host.
Я просмотрел базу данных в LockOwnersTable, и срок действия блокировки установлен на 2000-01-0100: 00: 00.000 при пробуждении системы.
Любые идеи, чтобы найти причину этого поведения или обходные пути, приветствуются.Я уже взял первый обходной путь, то есть отключен спящий режим ...