[英]Long Running Tasks - Best Practice - ASP.NET 4.0, C#
处理需要很长时间才能执行的流程的推荐方法是什么? 我不想简单地在服务器上运行它,因为页面会超时。
我浏览了网页,发现了多种方法--AJAX,线程,Web服务......(我没有经验)
处理这个问题的最佳实践方法是什么?
谢谢。
如果您只是尝试执行长时间运行的任务,Windows服务就是完美的。 不,不是网络服务,而是老式的Windows服务。 当有人上传Excel时,您的Windows服务可以使用FileWatcher监视目录,然后自动执行导入过程。 这样,您就不会将您的进程限制为ASP.NET和IIS工作进程,这些进程可以出于各种原因进行回收。 听起来你的应用程序确实需要在IIS之外。 上载过程可以是一个简单的Web前端,将该文件放入由Windows服务监视的目录中。
一种透明可靠的方法是将所需任务与处理队列一起实现为WebService。 因此,在客户端,您可以简单地向webserver发送请求,接收一些id作为回报,以便稍后检查结果。
其他一切都取决于您尝试实施的丰富用户体验。 您只需按一下按钮即可让用户随时刷新控件或整个页面。 或者实现基于ajax的控件,该控件不时地发送请求并检查结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.