我想写一个Linux服务(比如Windows服务),但我不知道如何安全地停止这项服务。
我读到了
AssemblyLoadContext.Default.Unloading += MethodInvokedOnSigTerm;
但它在.NET Core 1.1上不存在。
你有什么想法吗?
答案 0 :(得分:0)
If you able to update your app to use .Net Core 1.2
, it can be done via AppDomain.ProcessExit
事件的NAME属性,但在.Net Core 1.1
中,根据this github issue,这是不可能的}。
请注意,您需要至少引用Microsoft.NETCore.App 1.2.0-beta
才能使用较新的API。另外,为了引用更新的版本,您需要使用更新的CLI
工具至少预览4 版本的工具。您可以找到新的API功能可用性here。
根据该网站,自System.Runtime.Loader.AssemblyLoadContext.Unloading
.NET Core 1.0
以来,System.Runtime.Loader, Version=4.0.0.0, PublicKeyToken=b03f5f7f11d50a3a
事件确实存在。你试过安装那个包吗?我认为它会解决你的问题。
using System.Runtime.Loader;
AssemblyLoadContext.Default.Unloading += MethodInvokedOnSigTerm;