Asp.net core 优雅关闭:AppDomain.CurrentDomain.ProcessExit与appLifetime.ApplicationStopping.Register之间有什么区别?

Asp.net core 优雅关闭:AppDomain.CurrentDomain.ProcessExit与appLifetime.ApplicationStopping.Register之间有什么区别?,asp.net-core,Asp.net Core,我有一个asp.net-core 2.1 webapi项目在kubernetes集群中运行,我想实现一个优雅的关机 我的研究让我想到了两种不同的方法: AppDomain.CurrentDomain.ProcessExit 和 appLifetime.ApplicationStopping.Register 我的问题是:哪种方法是首选方法?ApplicationStopping是一种取消令牌。您可以注册到它,并将在应用程序即将关闭时触发。它是kestrel/asp.net核心的一部分。第一个是相

我有一个asp.net-core 2.1 webapi项目在kubernetes集群中运行,我想实现一个优雅的关机

我的研究让我想到了两种不同的方法:
AppDomain.CurrentDomain.ProcessExit

appLifetime.ApplicationStopping.Register


我的问题是:哪种方法是首选方法?

ApplicationStopping
是一种取消令牌。您可以注册到它,并将在应用程序即将关闭时触发。它是kestrel/asp.net核心的一部分。第一个是相当通用的,不特定于asp.net核心。看我的。在应用程序生命周期中,您可以进行更细粒度的控制。当应用程序即将停止时,停止会触发,您有几秒钟的时间来清理工作并优雅地将其关闭<代码>应用程序停止在时间结束之前触发,然后应用程序被终止(只是给你足够的时间登录等等)