ASP.NET Core - 注册应用程序关闭不起作用

Eva*_*tti 5 c# .net-core asp.net-core

我正在注册应用程序关闭,但当我停止应用程序时,不会调用我的方法(不会打印日志)。

使用新类:Microsoft.Extensions.Hosting.IHostApplicationLifetime

我正在 Visual Studio Code 中运行和停止我的应用程序。我的Startup.cs看起来像这样:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IHostApplicationLifetime lifetime)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseHttpsRedirection();

    app.UseRouting();

    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });

    lifetime.ApplicationStopping.Register(OnShutdown);
    lifetime.ApplicationStopped.Register(OnShutdown);
}
protected void OnShutdown()
{
    Console.WriteLine("APPLICATION IS SHUTTING DOWN");
    Debug.WriteLine(">>Stopped");
}
Run Code Online (Sandbox Code Playgroud)

the*_*yer 2

如果您通过终止调试器(即按“停止”按钮)来停止应用程序,那么它不会调用这些调试器。当你按下它的时候,程序就死掉了。

您需要找到一种方法来向程序发送 SIGINT。我不知道这在 VS Code 中是否可行。

  • 如果您有运行 ctrl+c 的控制台应用程序应该可以解决问题。 (4认同)