2011-12-13 88 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中止时将其终止。

相关问题