处理linux服务上的kill - .NET Core 1.1

时间:2017-04-03 19:28:38

标签: c# .net linux service .net-core

我想写一个Linux服务(比如Windows服务),但我不知道如何安全地停止这项服务。

我读到了

AssemblyLoadContext.Default.Unloading += MethodInvokedOnSigTerm;

但它在.NET Core 1.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;