Рабочий процесс с идентификатором "xxxxx" не найден в хранилище состояния - PullRequest
2 голосов
/ 24 июля 2009

У меня есть приложение рабочего процесса, которое выдает ошибку, когда я пытаюсь вызвать событие, используя ExternalDataExchangeService.

Рабочий процесс с идентификатором "866568ab-ca1b-4404-a2f1-2c8704539ef4" не найден в хранилище состояний.

Событие "QAEngOrTLReject" в типе интерфейса "RecipeChangeService.IRecipeChangeService", например, идентификатор экземпляра "866568ab-ca1b-4404-a2f1-2c8704539ef4" не может быть доставлено.

Вот мой код реализации для него -Пожалуйста, помогите, я застрял: (*

Ниже приведены аргументы событий интерфейса и обмена данными -


public class RecipeChangeService : IRecipeChangeService{
        #region IRecipeChangeService Members

        public event EventHandler QAEngOrTLApprove;

        public event EventHandler QAEngOrTLReject;

public bool QAEngOrTLApproved(Guid instanceId, ResponseDataObject rdo) {
            if (QAEngOrTLApprove != null) {
                QAEngOrTLApprove(this, new XMESWFRecipeResponseDataEventArgs(rdo, instanceId));
                return true;
            }return false;

        }

      public  bool QAEngOrTLRejected(Guid instanceId, ResponseDataObject rdo) {
            if (QAEngOrTLReject != null) {
                QAEngOrTLReject(this, new XMESWFRecipeResponseDataEventArgs(rdo,instanceId));
                return true;
            } return false;
        }
}

[Serializable]
    public class XMESWFRecipeResponseDataEventArgs : ExternalDataEventArgs {
        public readonly ResponseDataObject rdo = null;
        public XMESWFRecipeResponseDataEventArgs(ResponseDataObject rdo, Guid instanceId)
            : base(instanceId) 
        {
            this.rdo = rdo;
        }
    }

Событие вызывается с помощью -



 IRecipeChangeService s =
                   ExceptionServices.GetExceptionService(WorkflowExceptionType.RecipeChange)
                   as IRecipeChangeService;
  s.QAEngOrTLApproved(new Guid(instanceId), rdo);

Спасибо.

1 Ответ

3 голосов
/ 24 июля 2009

Сделайте нам одолжение и убедитесь, что код доступен для чтения.

Может быть ряд причин, по которым рабочий процесс не может быть найден. Прежде всего, вы также увидите эту ошибку, если нет службы персистентности и рабочий процесс не находится в памяти. Еще одна вещь, чтобы проверить, если рабочий процесс еще не завершен. Это может быть либо в результате какого-либо другого события, либо из-за необработанной ошибки.

...