长时间运行的任务 - 最佳实践 - ASP.NET 4.0,C#

Riv*_*vka 7 c# asp.net ajax web-services

处理需要很长时间才能执行的流程的推荐方法是什么?我不想简单地在服务器上运行它,因为页面会超时.

我浏览了网页,发现了多种方法--AJAX,线程,Web服务......(我没有经验)

处理这个问题的最佳实践方法是什么?

谢谢.

Tim*_* P. 8

如果您只是尝试执行长时间运行的任务,Windows服务就是完美的.不,不是网络服务,而是老式的Windows服务.当有人上传Excel时,您的Windows服务可以使用FileWatcher监视目录,然后自动执行导入过程.这样,您就不会将您的进程限制为ASP.NET和IIS工作进程,这些进程可以出于多种原因进行回收.听起来你的应用程序确实需要在IIS之外.上载过程可以是一个简单的Web前端,将该文件放入由Windows服务监视的目录中.


Tim*_*kov 4

一种透明且可靠的方法是将所需的任务与处理队列一起作为 WebService 来实现。因此,在客户端,您可以简单地向网络服务器发送请求,接收一些 id 作为返回,以便稍后检查结果。

其他一切都取决于您想要实现的用户体验的丰富程度。您只需让用户通过按按钮不时刷新控件或整个页面即可。或者实现基于 ajax 的控件,该控件本身会不时发送请求并检查结果。