我正在开发一个使用asp.net mvc4来管理我们的一些数据的内部网站点。此网站的一个重要功能是触发导入/导出作业。这些工作可能需要5分钟到1小时之间的任何时间。该网站的用户需要能够确定当前正在运行的作业以及之前作业的状态。许多工作通常会包含有关重复数据的警告消息,并且这些警告需要在网站上可见。在asp.net中长时间运行的工作流程mvc
我的计划是将这些长时间运行的进程作为一个WCF工作流服务来实现,该服务将与asp.net网站进行交互。我有很多通过活动实现的业务逻辑,并使用简单的控制台应用程序对其进行了测试。我应该注意到我正在使用关联句柄,以便根据网站上特定的“项目”对服务进行分区。
我的问题是如何查询活动作业(如果存在)的状态以及以前作业的警告消息。我怀疑这样做的最好方法是使用AppFabric跟踪服务,并让我的asp.net查询SQL监视存储并报告当前状态。设置AppFabric并添加自定义跟踪消息后,我遇到了一些问题。我的第一个问题是我无法弄清楚如何过滤掉没有使用正确关联句柄的工作流实例,因为我只想显示特定项目的工作流。另一个问题是跟踪数据库可能会延迟很多,这会导致我试图确定工作流程当前是否正在运行。
另一种可能的解决方案可能是让工作流明确更新数据库及其当前状态和任何错误消息。我倾向于这个解决方案,但可以使用一些专家的建议。
TL; DR:我需要知道查询WCF工作流服务的执行状态和任何警告消息的最佳方法。
我在考虑坚持使用标准的AppFabric跟踪,因为它可以让我也包含任何在tracelevel中标记为警告或错误的跟踪事件。监控存储持续跟踪消息多长时间?他们在达到某个年龄后被清除了吗? 只要查询活动WF实例的状态,您是否会建议使用持久性存储而不是修改工作流以使其具有一个并行活动,其中1个分支执行实际工作而另一个分支仅收到“IsRunning”消息? – Salec
查看关于检查运行的工作流实例的更新后的文章。 – Maurice
非常感谢!这真是有用的信息! – Salec