程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Topshelf如何支持Mono擴展Topshelf.Linux

Topshelf如何支持Mono擴展Topshelf.Linux

編輯:關於.NET

使用Topshelf 5步創建Windows 服務 這篇文章大家可以了解到使用Topshelf可以很好的支持Windows服務的開發,但是它和Mono不兼容,Github上有一個擴展https://github.com/pruiz/Topshelf.Linux 可以很好兼容Linux/Mono,本文介紹使用方法:

1、在項目中添加Topshelf.Linux, 通過Nuget 很方便的添加引用:

2、在代碼中加入下面一行代碼UseLinuxIfAvailable() :

class Program
  {
      static ILog _log = LogManager.GetLogger(typeof(Program));
    
      static void Main(string[] args)
      {
          System.IO.Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
          XmlConfigurator.ConfigureAndWatch(
              new FileInfo("log4net.config"));
    
          var host = HostFactory.New(x =>
          {
              x.Service<SampleService>(s =>
              {
                  s.ConstructUsing(() => new SampleService());
                  s.WhenStarted(v => v.Start());
                  s.WhenStopped(v => v.Stop());
    
              });
              x.UseLinuxIfAvailable(); 
              x.RunAsLocalSystem();
              x.UseLog4Net();
              x.SetDescription("SampleService Description");
              x.SetDisplayName("SampleService");
              x.SetServiceName("SampleService");
          });
          host.Run();
      }

這樣你的基於Topshelf Windows服務就完成了兼容Mono的改造工作。但是要注意的是在Mono下支持命令行運行,不能使用Topshelf的命令行Start,Stop控制服務等,這對於Linux環境來說足夠了,可以通過rc-scripts來完成這些工作。

本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved