C# 如何在Asp WebAPI应用程序中实现长时间运行的后台任务
我正在编写一个WebAPI应用程序来执行许多长时间运行的后台处理任务 我注意到,我的测试数据加载任务正在被System.Threading.ThreadAbortException终止,即使我在IIS中禁用了池回收。 我知道,有一种方法可以在Web应用程序中运行很长时间(几个小时)的后台任务,但是,我不知道具体是如何完成的-一些特定的配置设置、编码技术、Wen.config参数等等。。。C# 如何在Asp WebAPI应用程序中实现长时间运行的后台任务,c#,asp.net,asp.net-web-api,iis-7.5,azure-webjobs,C#,Asp.net,Asp.net Web Api,Iis 7.5,Azure Webjobs,我正在编写一个WebAPI应用程序来执行许多长时间运行的后台处理任务 我注意到,我的测试数据加载任务正在被System.Threading.ThreadAbortException终止,即使我在IIS中禁用了池回收。 我知道,有一种方法可以在Web应用程序中运行很长时间(几个小时)的后台任务,但是,我不知道具体是如何完成的-一些特定的配置设置、编码技术、Wen.config参数等等。。。 任何人都可以分享一些实用的方法吗?您不想使用IIS/ASP.Net来运行长时间运行的进程,它不是为此而设计的
任何人都可以分享一些实用的方法吗?您不想使用IIS/ASP.Net来运行长时间运行的进程,它不是为此而设计的 只在Web.API中的初始调用中使用它,通过使用MSMQ或在表中插入一行来启动服务,该表告诉单独的进程该做什么
创建一个单独的应用程序-要么是控制台应用程序,您可以使用Windows Scheduler定期运行应用程序并检查新的工作项;或Windows服务,定期检查工作项存储中的工作项。然后,您可以使用线程池等异步运行您的进程。解决我的问题的最佳方法似乎是将自托管WebAPI与TopShelf windows服务实现相结合。 通过这种方式,我可以用通常的方式编写WebAPI控制器代码,那些长时间运行的任务不会被IIS杀死 谢谢大家的帮助
-Eugene这可能会有所帮助,或者在Azure中,云服务(工作者角色)是最强大的机制。在WAWS中,您可以将WebJobs SDK用于长时间运行的异步进程。请参阅Azure WebJobs,您现在可以添加长时间运行的进程。请参阅我的教程。