2010-05-22 5 views
0

asp.net에서 워크 플로를 실행하고 SynchronizationContext를 사용하여 워크 플로에 대한 페이지를 "대기"상태로 만듭니다. 다음은 asp.net에서 워크 플로 인스턴스를 실행하는 방법입니다.WF4의 SynchronizationContext 및 Bookmarks

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, 어떤 아이디어 아래에서 북마크 작업합니까? 이 후라고 대신에 완료되어야

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

: 당신이 완성 된 속성을 설정 한 후

답변

0

이 책갈피와 워크 플로우를 유지하면 완료 속성이 호출되지 않고,이 줄을 추가 시도 , ASP.NET 코드가 다시 제어되어야합니다. PersistableIdleAction 열거 형을 필요한 것으로 변경하십시오. 예제 코드에서 None을 선택했습니다.

관련 문제