【发布时间】:2019-01-11 17:08:42
【问题描述】:
我有一个在本地 Docker Linux 容器(Docker CE 18.03.1 稳定通道)中运行的 .NET Core 2.0 控制台应用程序,并且正在尝试处理正常关闭。
我的应用有AppDomain.CurrentDomain.ProcessExit 和AssemblyLoadContext.Default.Unloading 的处理程序:
AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit;
AssemblyLoadContext.Default.Unloading += Default_Unloading;
处理程序只是在调用时写入日志消息。
我发现,当我执行docker stop <containerid> 时,没有 处理程序被调用,并且经过短暂的延迟。容器只是停止运行。我尝试在 Visual Studio 中调试应用程序,并尝试在没有调试器的情况下运行。在所有情况下,处理程序都不会被调用。
我还缺少其他一些魔法咒语吗?
【问题讨论】: