线程和派生任务的ASP.Net寿命
本文关键字:ASP Net 寿命 任务 派生 线程 | 更新日期: 2023-09-27 18:23:44
我是ASP.net、的新手
我正在编写一个webapi来启动一些繁重的服务器端处理,我需要保证这些处理会完成。
目前,ASP.net请求启动一个新任务(Task.Factory.StartNew(…)),然后返回一个URL,用户可以通过轮询来查找状态。
然而,我在服务器端处理任务中遇到了奇怪的ThreadBorted异常,读到这个问题后,我认为使用Task不是最好的选择。
是否有更好的并行/异步模式来生成需要保证完成的长时间运行的服务器端进程?
IIS可以随时回收您的应用程序,因此web服务器不是最好的选择。您最好的选择是在单独的服务器上运行windows服务,并在其中自托管WebApi,或者使用MSMQ将消息从web服务器发送到"应用程序"服务器以启动处理。