Control-Cを押したときにクリーンアップ作業をしたいですか?どのようにAsp .Net Core Web Api Appでそれを達成するには?Control-Cを聴くには? (サーバクローズはクライアント側ではコピーされません)
アプリが終了しているときに、単にログメッセージをテキストファイルに書きたいと思っています。
Control-Cを押したときにクリーンアップ作業をしたいですか?どのようにAsp .Net Core Web Api Appでそれを達成するには?Control-Cを聴くには? (サーバクローズはクライアント側ではコピーされません)
アプリが終了しているときに、単にログメッセージをテキストファイルに書きたいと思っています。
あなたはStartup.cs
でIApplicationService.ApplicationStopping
経由(コンソール上Ctrl-C
を経由して)アプリケーションの終了時にASP.NETコアによって呼び出される関数を登録することができます。
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!
ありがとうございました!できます! – Student222
ASP.NETコアはWebサイト向けであるため、たとえばjQueryを使用してこれを行うことができます。
私はクライアント側でCtrl-Cを検出するわけではありません。私は、ASP.NETアプリケーションを閉じるサーバー側のCtrl-Cを意味します。 – Student222
asp.netは、Webアプリケーション用です。あなたは.netコアコンソールアプリケーションを意味しましたか? –
あなたが何をしたいのか、なぜそれが何であるかは明確ではありません。詳細をご記入ください。 – Amy
これは 'Asp.NET Core'や他の' Asp.NET'フレームワークでは実現できません。 'Control - C'は目に見えないキーボード入力です。だからあなたはクライアント側でこれを実現する必要があります - javascriptの可能性があります。 – Fabio