微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 在linux服务上处理kill – .NET Core 1.1

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

我读到了

AssemblyLoadContext.Default.Unloading += MethodInvokedOnSigTerm;

但它不存在于.NET Core 1.1中.

你有什么想法 ?

解决方法

如果您能够更新您的应用程序以使用.Net Core 1.2,它可以通过 AppDomain.ProcessExit事件完成,但在.Net Core 1.1中,根据 this github issue,这是不可能的.

请注意,您需要至少引用Microsoft.NETCore.App 1.2.0-beta才能使用较新的API.另外,为了引用更新的版本,您需要使用一组较新的CLI工具,至少预览4版本的工具.您可能会发现新的API功能可用性here.

根据该站点,System.Runtime.Loader.AssemblyLoadContext.Unloading事件确实存在于自0700年的.NET Core 1.0以来.您是否尝试安装该软件包?我认为它会解决你的问题.

using System.Runtime.Loader;

AssemblyLoadContext.Default.Unloading += MethodInvokedOnSigTerm;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐