我需要在我的asp.net核心应用程序中运行长时间运行的后台任务。 我知道Azure Webjobs和其他流程外技术,但我宁愿保持简单的解决方案并直接在asp.net核心流程中运行这些任务。 我使用Kestrel,应用程序托管在IIS中。IIS将回收asp.net核心进程吗?
我知道IIS偶尔会回收IIS进程。它也会回收asp.net核心流程吗?
我需要在我的asp.net核心应用程序中运行长时间运行的后台任务。 我知道Azure Webjobs和其他流程外技术,但我宁愿保持简单的解决方案并直接在asp.net核心流程中运行这些任务。 我使用Kestrel,应用程序托管在IIS中。IIS将回收asp.net核心进程吗?
我知道IIS偶尔会回收IIS进程。它也会回收asp.net核心流程吗?
不,它不会。 IIS应用程序池只处理w3wp.exe进程。
ASP.NET Core由Kestrel进程托管,而IIS只是其前面的反向代理。
我必须做一个实验 使用 'IApplicationLifetime applicationLifetime' 像ASPNET Golbal.aspx
当IIS应用程序的循环中,registerd 'ApplicationStopping' 被触发。
因此,我会相信https://github.com/aspnet/KestrelHttpServer/issues/1040#issuecomment-267506588
kestrel进程将由apppool用户产生。回收期间会发生什么? iis是否在回收期间杀死apppool用户的所有进程? – pepo
@pepo你可以做一些实验。我相信红隼进程仍然存在。从不“终止apppool用户的所有进程”。它只是取代工作进程(w3wp.exe)。 –
嗯,我不知道那个:https://github.com/aspnet/KestrelHttpServer/issues/1040#issuecomment-267506588 – Clement