2016-12-22 2 views
-2

Control-Cを押したときにクリーンアップ作業をしたいですか?どのようにAsp .Net Core Web Api Appでそれを達成するには?Control-Cを聴くには? (サーバクローズはクライアント側ではコピーされません)

アプリが終了しているときに、単にログメッセージをテキストファイルに書きたいと思っています。

+0

asp.netは、Webアプリケーション用です。あなたは.netコアコンソールアプリケーションを意味しましたか? –

+1

あなたが何をしたいのか、なぜそれが何であるかは明確ではありません。詳細をご記入ください。 – Amy

+2

これは 'Asp.NET Core'や他の' Asp.NET'フレームワークでは実現できません。 'Control - C'は目に見えないキーボード入力です。だからあなたはクライアント側でこれを実現する必要があります - javascriptの可能性があります。 – Fabio

答えて

3

あなたはStartup.csIApplicationService.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! 
+0

ありがとうございました!できます! – Student222

-2

ASP.NETコアはWebサイト向けであるため、たとえばjQueryを使用してこれを行うことができます。

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

+0

私はクライアント側でCtrl-Cを検出するわけではありません。私は、ASP.NETアプリケーションを閉じるサーバー側のCtrl-Cを意味します。 – Student222

関連する問題