私は.NETコアに移植しています。既存のアプリケーションは、開いているデータベースファイルやその他の正常なシャットダウンタスクをきれいに閉じることができるように、アプリケーションを閉じるためにWin32呼び出しSetConsoleCtrlHandlerをフックしています。graceful closeのためのdotnetコアキャプチャシャットダウン
私は.NETコアで同じことをする必要があります。唯一のオプションは、ASP.NETでIApplicationLifetime ApplicationStopping.Registerにフックすることです。しかし、これはCtrl-Cのみをキャプチャし、エンドユーザまたはシステムがWin32呼び出しが行うコンソールアプリケーション(たとえば、システムの再起動)を終了した場合には機能しません。
他のオプションはAppDomain(AppDomain.CurrentDomain.ProcessExit)経由ですが、AppDomainはdotnet Coreでは使用できません。
正常にアプリのシャットダウンが重要で、私は本番システムのデータ破損が心配だから、同等のものを実装する必要があり、新しいアプリはWindowsとLinux OSの両方で実行されます。
これを行うにはdotnetコアの機能が欠けていますか?あるいは、私はwin32のシャットダウンフックを再実装しなければならないのですか?
これに最も近づける方法はありますか? – deandob