如何听Control-C按? (服务器关闭不在客户端复制)

时间:2016-12-22 19:47:32

标签: c# .net asp.net-core

我想在按下Control-C时做一些清理工作?如何在Asp .Net Core Web Api App中实现这一目标?

我只想在应用关闭时将一些日志消息写入文本文件。

2 个答案:

答案 0 :(得分:4)

当应用程序通过Ctrl-C中的IApplicationService.ApplicationStopping退出(通过控制台上的Startup.cs时,您可以注册要由ASP.NET Core调用的函数:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    ....
    var applicationLifetime = app.ApplicationServices.GetRequiredService<IApplicationLifetime>();
    applicationLifetime.ApplicationStopping.Register(OnShutdown);
    ....
}

private void OnShutdown()
{
    Console.WriteLine("Goodbye!");
}

运行时(使用dotnet run):

Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.

输入Ctrl-C,您应该看到:

^CGoodbye!

答案 1 :(得分:-3)

因为ASP.NET Core适用于网站,所以您可以使用jQuery执行此操作。

请参阅:How to detect Ctrl+V, Ctrl+C using JavaScript?