2010-05-22 29 views
0

我在asp.net下運行工作流,並使用SynchronizationContext使頁面「等待」工作流。以下是我如何在asp.net下運行工作流實例:WF4中的同步上下文和書籤

var workflowApplication = new WorkflowApplication(activity); 
SynchronizationContext syncContext = SynchronizationContext.Current; 
workflowApplication.Completed = delegate { syncContext.OperationCompleted(); }; 
workflowApplication.SynchronizationContext = syncContext; 
syncContext.OperationStarted(); 
workflowApplication.Run(); 

在其中一項活動中,我使用書籤。現在,我希望無論何時調用CreateBookmark,都可以繼續進行頁面處理。在設置書籤之前,我嘗試調用SynchronizationContext.Current.OperationCompleted(),但是在工作流程恢復並完成時壓縮了asp.net站點(我認爲工作流實例在完成並調出錯誤時再次調用OperationCompleted)

我在Asp.Net下使用書籤,有什麼想法?

回答

0

已完成的房產時,你堅持用書籤工作流沒有被調用,嘗試加入這一行,你已經建立了完整的財產後:

workflowApplication.PersistableIdle = args => { 
    syncContext.OperationCompleted(); 
    return PersistableIdleAction.None; 
}; 

這應該然後調用,而不是完成,並且ASP.NET代碼應該重新獲得控制權。將PersistableIdleAction枚舉更改爲需要的任何內容,例如代碼,我選擇了None。