Topshelf 使用


前言

在寫后台代碼的過程中,經常會遇到要寫一些單獨的服務。以前呢,直接用的是 .NET 下的 “Windows 服務” 控件開發的。

這個傳統的控件開發起來很不方面,使用也不友好。發現有用 Topshelf 的,這個第三方的框架,集成的很好,用起來也方便。

這里就說下我的使用過程。

使用

1、添加引用

在需要使用Topshelf的項目右鍵“引用”=》“管理NuGet程序包”

搜索“Topshelf”就可以,安裝最新版。

2、代碼中使用

這里直接上代碼。

class Program
    {
        static void Main(string[] args)
        {
            Host host = HostFactory.New(x =>
            {
          // 基本的配置 x.RunAsLocalSystem(); x.SetServiceName(
"Service"); x.SetDisplayName("Service"); x.SetDescription("服務"); x.StartAutomatically(); x.EnableShutdown();
          // 注冊服務 x.Service
<Service>(hostSettings => new Service()); // 設置服務失敗后的操作,分別對應第一次、第二次、后續 x.EnableServiceRecovery(t => { t.RestartService(0); t.RestartService(0); t.RestartService(0); t.OnCrashOnly(); }); }); host.Run(); } }

這里要繼承 Topshelf的“ServiceControl”,來開始服務和結束服務。

    public class Service : ServiceControl
    {public bool Start(HostControl hostControl)
        {
            // 開始具體的業務邏輯
            return true;
        }

        public bool Stop(HostControl hostControl)
        {
            // 結束
            return true;
        }
    }

3、部署服務

部署、開始、卸載服務只需要一句命令行就可以:

    安裝:Service.exe install
    啟動:Service.exe start
    卸載:Service.exe uninstall

這些命令是在當前文件夾下打開 CMD 執行的命令。如果不是當前文件夾,需要帶上絕對路徑。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM