我已經使用WorkflowServiceHost中,WorkflowServiceHostFactory和WorkflowHostingEndpoint的應用程序,主機WF4.5工作流程IIS。WF 4.5書籤自定義活動不火持續/卸載
工作流由VS 2013在.xaml文件中定義。在工作流程中,具有用於接收來自用戶的輸入數據的自定義活動。獲取使用CreateBookmark和Resume的回調。
我的問題是:第一個活動執行,工作流實例進入空閒,持久和卸載。在恢復第一個書籤之後,第二個活動執行一個工作流實例只進入空閒狀態。因此只有第一個活動才能使工作流實例保持並卸載。
要驗證我的主機實現是否正常工作,我使用了延遲活動並且一切正常。
我的自定義活動:
public sealed class WaitForResponse<TResult> : NativeActivity<TResult>
{
public string ResponseName { get; set; }
protected override bool CanInduceIdle
{
get
{
return true;
}
}
protected override void Execute(NativeActivityContext context)
{
context.CreateBookmark(this.ResponseName, new BookmarkCallback(this.ReceivedResponse));
}
protected void ReceivedResponse(NativeActivityContext context, Bookmark bookmark, object obj)
{
this.Result.Set(context, (TResult)obj);
}
}
IWorkflowCreation client = new ChannelFactory<IWorkflowCreation>(new NetNamedPipeBinding(NetNamedPipeSecurityMode.None), new EndpointAddress("net.pipe://localhost/workflowCreationEndpoint")).CreateChannel();
//create an instance
Guid id = client.Create(null);
// Resume
client.ResumeBookmark(id, "1", "Message 1");
一個書籤的活動進行了總結(createbookmark /簡歷)的情況下沒有更多的堅持/卸載後。
換句話說,只有第一個書籤活動集實例纔會卸載。是的,我設置了TimeToPersist/TimeToUnload。
這裏是實例的跟蹤狀態: 開始,空閒,堅持,卸載,已恢復,空閒,空閒,空閒,空閒,空閒,已完成,已刪除。
我創建了一個演示問題的示例解決方案。
我真的很感激,如果有人能幫助我。感謝您的任何幫助!
謝謝你的幫助!
在我的WorkflowServiceHostFactory類中,我通過WorkflowIdleBehavior配置了workflowIdle。這對於第一個活動來說工作得很好,但是第二個活動只保持空閒。 – 2014-10-02 16:44:28
請看看我發佈的示例。 – 2014-10-03 17:53:57
檢查我編輯的答案。希望能幫助到你。 – Joao 2014-10-05 17:33:12