我想知道从ASP.NET网页按需启动处理长时间运行进程的最佳方式。处理ASP.NET中长时间运行的进程
的过程可以包括的各个步骤(如文件上传到服务器,在上面运行SSIS包,执行一些存储过程等),有时这个过程可能需要长达几个小时才能完成。
如果我使用WCF服务去异步执行,那么如果用户关闭,而进程正在运行,过程如何成功或失败的结果应该显示给用户浏览器中会发生什么?为了解决这个问题,我选择了单向的WCF服务调用,但问题在于我需要创建一个进程表并存储结果(如果在任何步骤中失败并且哪些步骤已成功完成,则存储错误消息)该表是额外的开销,因为有许多这样的进程具有用户可以从网页调用的各种步骤,并且用户需要知道进度(在最简单的情况下,状态可以是“进程xyz运行”)一旦完成,输出需要显示给用户(例如通过运行存储过程)。
什么是设计这个解决方案的最佳方式是什么?
感谢所有的答复。我需要构建的东西更像是一个小型工作执行管理工具,由Web界面触发,这不是很常见。我可能会创建一个通用的进程表并将日志消息存储为xml。日志消息主要表示执行进度。 – RKP 2010-08-24 11:28:35