ASP.NET Core中的Startup.cs中的Kestrel关闭函数如何使用?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (85)

使用时是否有关机功能Microsoft.AspNet.Server.Kestrel?ASP.NET Core(以前称为ASP.NET vNext)显然具有启动顺序,但没有提及关闭顺序以及如何处理清理关闭。

提问于
用户回答回答于

在ASP.NET Core中,可以注册到提供的取消令牌IApplicationLifetime

public class Startup 
{
    public void Configure(IApplicationBuilder app, IApplicationLifetime applicationLifetime) 
    {
        applicationLifetime.ApplicationStopping.Register(OnShutdown);
    }

    private void OnShutdown()
    {
         // Do your cleanup here
    }
}

IApplicationLifetime还暴露了取消标记ApplicationStoppedApplicationStarted以及一个StopApplication()方法来停止该应用程序。

用户回答回答于

除了最初的答案之外,我在尝试连接构造函数中的IApplicationLifetime时出错。

我这样做解决了这个问题:

public class Startup 
{
    public void Configure(IApplicationBuilder app) 
    {
        var applicationLifetime = app.ApplicationServices.GetRequiredService<IApplicationLifetime>();
        applicationLifetime.ApplicationStopping.Register(OnShutdown);
    }

    private void OnShutdown()
    {
         // Do your cleanup here
    }
}

所属标签

可能回答问题的人

  • Hanzo

    6 粉丝0 提问7 回答
  • Richel

    9 粉丝0 提问3 回答
  • mariolu

    31 粉丝0 提问2 回答
  • 上云小秘书

    15 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券