我正在使用 asp.net mvc4 开发一个 Intranet 站点来管理我们的一些数据。该站点的一个重要功能是触发导入/导出作业。这些工作可能需要 5 分钟到 1 小时之间的任何时间。该站点的用户需要能够确定作业当前是否正在运行以及先前作业的状态。许多工作通常会包含有关重复数据的警告消息,并且这些警告需要在站点上可见。
我的计划是将这些长时间运行的进程实现为 asp.net 站点将与之交互的 WCF 工作流服务。我已经通过活动实现了很多业务逻辑,并使用简单的控制台应用程序对其进行了测试。我应该注意我正在使用关联句柄来根据站点上的特定“项目”对服务进行分区。
我的问题是如何通过查询活动作业的状态(如果存在)以及以前作业的警告消息来进行。我怀疑最好的方法是使用 AppFabric 跟踪服务并让我的 asp.net 查询 SQL 监控存储并报告当前状态。在设置 AppFabric 并添加自定义跟踪消息后,我遇到了一些问题。我的第一个问题是我无法弄清楚如何过滤掉未使用正确关联句柄的工作流实例,因为我只想显示特定项目的工作流。另一个问题是跟踪数据库可能会延迟很多,这会导致我在尝试确定工作流是否正在运行时出现问题。
另一种可能的解决方案是让工作流使用其当前状态和任何错误消息显式更新数据库。我倾向于这个解决方案,但可以使用一些专家建议。
TL;DR:我需要知道查询 WCF 工作流服务的执行状态和任何警告消息的最佳方法。