在状态持久性存储中找不到ID为“xxxxx”的工作流

时间:2009-07-24 12:36:11

标签: workflow workflow-foundation

我有一个工作流应用程序,当我尝试使用ExternalDataExchangeService调用事件时会抛出错误。

在状态持久性存储中找不到ID为“866568ab-ca1b-4404-a2f1-2c8704539ef4”的工作流程。

接口类型“RecipeChangeService.IRecipeChangeService”上的事件“QAEngOrTLReject”,例如id“866568ab-ca1b-4404-a2f1-2c8704539ef4”无法发送。

这是我的实施代码 - 请帮助我卡住:(

以下是界面和数据交换事件args -

 
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 个答案:

答案 0 :(得分:3)

帮我们一个忙,请确保代码可读。

无法找到工作流程的原因有很多。首先,如果没有持久性服务且工作流不在内存中,您也会看到此错误。要检查的另一件事是工作流程尚未完成。这可能是某些其他事件的结果,也可能是由于未处理的错误。