HowtoImplementaVeryLongRunningBackgroundTaskinanAspWebAPIApplication我正在编写一个WebAPI应用程序来执行许多长时间运行的后台处理任务。我注意到,即使我在IIS中禁用了池回收,我的测试数据加载任务也会被System.Threading.ThreadAbortException终止。我知道,有一种方法可以在Web应用程序中运行长时间运行(几个小时)的后台任务,但是,我只是不知道这是如何完成的——要么是一些特定的配置设置,要么是编码技术,要么是Wen.config参数等...有人可以分享一些实用的方法吗?您不想使用IIS/ASP.Net运行长时间运行的进程,它不是为此而设计的。仅适用于Web.API中的初始调用,通过使用MSMQ或向表中插入行来告诉您的单独进程要做什么来启动服务。创建一个单独的应用程序——一个控制台应用程序,您可以在其中使用Windows调度程序定期运行该应用程序并检查新的工作项;或Windows服务,它会定期检查您的工作项存储中的工作项。然后你可以使用ThreadPool等异步运行你的进程。看起来我的问题的最佳答案是将自托管WebAPI与TopShelfWindows服务实现结合起来。这样我就可以用通常的方式对我的WebAPI控制器进行编码,并且那些长时间运行的任务不会被IIS终止。感谢大家的帮助!-Eugene以上是C#学习教程:Howtoimplementaverylong-runningbackgroundtaskinanAspWebAPIapplication。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
