2011-12-13 71 views
0

我們在項目中使用Windows WorkFlow,WCF和WPF(監視工具,它將顯示報告的狀態,如IN_PROGRESS,FAILED,SUCCESS)。終止長時間運行的工作流程

工作流將由WCF中的WorkFlowApplication啓動。工作流將輪流調用遺留應用程序(報告生成應用程序),有時在遺留應用程序中的操作將需要4到5小時才能完成。用戶需要從wpf應用程序中終止這個長時間運行的工作流程。我們嘗試使用WorkFlowApplication Abort,但報告生成不會被殺死。我們從CodeActivity調用了遺留應用程序。

您能否提供什麼是調用該遺留應用程序(將調用該dll中的某個方法)的最佳方式,並且在調用工作流程中止時還要殺死該名爲app的應用程序?

感謝&問候, Varun的

+0

你可以發表一些關於你如何調用舊版應用的代碼嗎?該應用是否提供某種Abort方法?一個選項也是殺死正在運行它的進程。 – Strillo

+0

我們通過從wf調用方法返回一個來自傳統應用程序的對象,返回的對象稱爲傳統應用程序中的方法,有時可能需要4到5小時才能完成。該遺留應用程序中沒有Abort方法。我們限制工作流一次只創建5個實例,因此遺留應用程序(dll)可以在5個實例中運行。 – varun

+0

如果遺留應用程序無法中止它,那麼您如何期望能夠在代碼中完成該操作?你會如何手動中止它? –

回答

0

我看到的唯一選擇是創建一種能夠在一個單獨的處理被執行的繼承應用程序的包裝(例如,控制檯應用程序)。 形成工作流然後您將啓動包裝應用程序,獲取流程處理程序並最終在WF中止時將其終止。

相關問題