【问题标题】:WorkFlow Foundation 4 WorkflowApplication Completed not triggeredWorkFlow Foundation 4 WorkflowApplication Completed 未触发
【发布时间】:2013-10-18 10:09:04
【问题描述】:

我有以下代码

AutoResetEvent instanceUnloaded = new AutoResetEvent(false);

WFStepsActivity workflow = WorkflowFactory.Current.BuildWorkflow(workflowinstance, requestinstance.RequestInstanceID);
WorkflowApplication wf = new WorkflowApplication(workflow);

wf.InstanceStore = WFInstanceStore.GetInstanceStore();

WFStepsPersistenceParticipant persist = new WFStepsPersistenceParticipant();
wf.Extensions.Add(persist);
wf.PersistableIdle = (arg) =>
{
    return PersistableIdleAction.Unload;
};

wf.Unloaded = (arg) =>
{
    log.Info("WFName_" + wfsetting.Name + "_Unloaded and return.");
    instanceUnloaded.Set();
};
wf.OnUnhandledException = (arg) =>
{
    return UnhandledExceptionAction.Abort;
};

wf.Completed = (arg) =>
{
    if (arg.CompletionState == ActivityInstanceState.Closed)
    {
        persist.WorklflowCompleted = true;
    }
};

wf.Run();
instanceUnloaded.WaitOne();
return persist.WorklflowCompleted;

WFStepsActivity 就是我们从设置中构建的 Acitivity 结构。 当前工作流在创建书签时结束。

context.CreateBookmark(context.WorkflowInstanceId.ToString(), new System.Activities.BookmarkCallback(OnResumeBookmark));

问题是在创建书签后,wf.Completed 永远不会被触发。

如果创建了书签,想检查是否触发了完成。

据我所知,如果您取消、终止,则会触发 Complete 事件

不是说一旦书签的工作流停止,就会触发这个事件吗?

【问题讨论】:

    标签: c# .net-4.0 workflow workflow-foundation-4 workflow-foundation


    【解决方案1】:

    书签会导致工作流变为空闲,这意味着您必须有目的地在书签处恢复才能继续并完成工作流。第一件事:Grok bookmarks

    我不确定您是否提供了足够的代码以允许任何人正确诊断确切的问题(我看不到您的书签创建,也看不到您的支持类等)。

    您的工作流程也有可能抛出异常,其中的细节被吞没了。如果您想捕获并记录任何未处理的异常,我会因此修改您的代码:

    Exception error = null;
    wf.OnUnhandledException = (arg) =>
    {
       error = arg.UnhandledException;
       return UnhandledExceptionAction.Abort;
    };
    
    // and then after you've waited for completion...
    if (error != null) {
       throw error; // or handle it another way
    }
    

    也有用:Configuring Tracking for a Workflow

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多