我需要在我的asp.net core应用程序中运行长时间运行的后台任务。
我知道Azure Webjobs和其他外部处理技术,但我更愿意保持解决方案简单,并直接在asp.net核心进程中运行这些任务。
我使用Kestrel,应用程序托管在IIS中。
我知道IIS偶尔会重启IIS进程。那么它是否也会重启asp.net core进程?
我知道IIS偶尔会重启IIS进程。那么它是否也会重启asp.net core进程?
Asp.Net Core < 2.2
Asp.net Core
运行在一个单独的进程dotnet.exe
中,即使它托管在IIS
中。但这并不意味着它作为一个独立的进程运行。通过AspNetCoreModule
,IIS
仍然负责Asp.net core
进程(dotnet.exe
)的生命周期。
因此,答案是是的,IIS也会回收asp.net core进程。
Asp.Net Core >= 2.2
与之前的out-of-process
托管模型相比,Asp.Net Core 2.2在IIS上支持in-process
托管模式。这似乎只是一种优化,可以避免将请求反向代理到单独的dotnet进程中产生额外的成本。IIS将会回收应用程序池以及Asp.net Core
应用程序。
不会的。IIS 应用程序池只负责 w3wp.exe 进程。
ASP.NET Core 是由 Kestrel 进程托管的,而 IIS 只是它前面的反向代理。