【问题标题】:Handling kill on linux service - .NET Core 1.1处理 linux 服务上的 kill - .NET Core 1.1
【发布时间】:2017-08-28 19:12:56
【问题描述】:

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

我读到了

AssemblyLoadContext.Default.Unloading += MethodInvokedOnSigTerm;

但它在 .NET Core 1.1 上不存在。

你有什么想法吗?

【问题讨论】:

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


    【解决方案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 事件确实存在自 .NET Core 1.0System.Runtime.Loader, Version=4.0.0.0, PublicKeyToken=b03f5f7f11d50a3a 中。您是否尝试安装该软件包?我认为它会解决您的问题。

    using System.Runtime.Loader;
    
    AssemblyLoadContext.Default.Unloading += MethodInvokedOnSigTerm;
    

    【讨论】:

    • AssemblyLoadContext.Default.Unloading 正在使用 .Net Core 2.0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 2014-04-15
    • 2017-08-31
    • 1970-01-01
    • 2017-09-29
    • 2017-11-26
    相关资源
    最近更新 更多