我应该如何在ASP.NET 4中执行长时间运行的任务?

我正在使用.NET 4建立一个网站。2003年有很多MSDN文章,有关使用Thread对象和2007,有关在.NET 2中使用Asynchronous Pages的文章,但这都是很陈旧的。我知道.NET 4带给我们Task类,有些人含糊地警告不要将其用于此目的。


因此,我想问您,大约在2011年用于在ASP.NET 4中的IIS下运行后台/异步工作的“首选”方法是什么?关于直接使用线程/任务有什么注意事项?Async = true仍在流行吗?


编辑:好的,好的,从答案中可以明显看出,如果可以的话,我应该提供服务。但是在webapp内执行此操作的优势非常明显,尤其是更易于部署/重新部署。假设该过程很容易崩溃,那么,如果我要在IIS中进行操作,最好的方法是什么?


asp.net iis 异步 asp.net-4.0 azure-webjobs


素胚勾勒不出你
浏览 671回答 3
3回答

湖上湖

最好避免在这种环境下执行长任务。通过互操作性将长期运行的任务委托给稳定的系统服务,使Web应用程序具有响应能力,并且仅在直接用户请求时才需要。Web应用程序从来没有(现在仍然不是)被认为是可靠的系统-曾经使用过浏览器的任何人(至少)肯定会遇到超时;(双方)的不便并不限于这种情况。当然,任何系统都可能崩溃,但是围绕将要建立的持久化系统上的此类事件的情况应该是完全例外的。Windows服务被设计为可以长期运行,如果出现问题,通常您比个人服务更需要担心。
打开App,查看更多内容
随时随地看视频慕课网APP