Topshelf如何支持Mono扩展Topshelf.Linux

使用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来完成这些工作。

本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/net/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索linux
, windows
, mono
, 服务
支持
topshelf linux、topshelf、topshelf 安装 服务、topshelf quartz、c topshelf,以便于您获取更多的相关知识。

时间: 2024-11-01 07:29:05

Topshelf如何支持Mono扩展Topshelf.Linux的相关文章

Flex Accessibility全键盘支持和扩展

Flex 是 Adobe 公司开发的支持 RIA(Rich Internet Applications)开发和部署的技术产品,主要面向企业级的应用.良好的 Accessibility 支持尤其是全键盘支持是一个优秀的 Flex 产品必备的前提,Flex 本身提供了一些基本的 Accessibility 键盘支持如 Tab 键切换控件,Space 键选择等,本教程主要介绍 Flex 对 Accessibility 全键盘的支持以及如何利用已有的 API 进行扩展以更好的实现产品级的 Accessi

微软:Azure支持Intel架构Clear Linux系统

1月19日消息 微软宣布在Azure支持Intel架构的Clear Linux系统.该系统是专为云和数据中心环境打造的Intel架构最高性能的开源Linux版本.微软企业开源团队的 KY Srinivasan表示,该团队从项目的第一天起就和Intel进行合作. 微软:Azure支持Intel架构Clear Linux系统 基本情况如下: 极简的虚拟机,将作为起始点为想要探索和创建捆绑自选内容的系统服务 一个包含著名Docker容器运行时的容器镜像 专为开发机器学习应用和包含著名开源工具的预加载简

Chrome着手打造可扩展插件系统,将可支持第三方扩展插件

12月2日消息,据国外媒体报道,Google Chrome的工程师Aaron Boodman近日在其博客中披露了Chrome的扩展插件计划,并公布相关的开发人员设计文件.文件显示,Chrome正着手打造可扩展插件系统,未来将支持第三方扩展插件. 根据该份文件,使用者在不同的环境中执行不同的工作,而每个人的需求都不尽相同,但Chrome又想保持最清爽的用户介面,因此可通过扩展插件新增各种功能,可以是使用者在其他浏览器上惯用的扩展插件,也可以是合作伙伴在Chrome上新增的功能. 在该份设计文件中G

让IIS支持任意扩展名和未知扩展名的下载(下载站设置)_win服务器

如果下载空间里面有asp,php文件不建议这样设置,如果这样设置了又不想让asp,php文件被别人下载可以使用. 第一步: 取消网站执行权限 2.为防止asp,php文件被下载,没有就不需要设置 让IIS支持任意扩展名和未知扩展名的下载 1. 打开 IIS Microsoft 管理控制台 (MMC),右键单击本地计算机名称,然后单击"属性". 2. 单击"MIME 类型". 3. 单击"新建". 4. 在"扩展名"框中,键入星

OPPO Find 7 支持可扩展内存的设计

再一个月,OPPO Find 7就要发布了,各种相关信息层出不穷,日前OPPO 官方发布了消息称,OPPO Find 7 支持可扩展内存的设计,开放性的满足了网友对存储量的多样化需求. 至于OPPO Find7最大可支持多大的扩展内存,名为手机全球汇微博用户曝光疑似OPPO Find 7存储截面图,显示该机器SD卡总容量为119G,程序安装区2.95G,这是否意味着OPPO Find 7可扩展内存至少可达128G呢? 若真如爆料所言,OPPO 将是继三星.苹果.魅族等厂商之后,推出128G超大存

Arkeia Software宣布支持第100个Linux平台

         开放系统市场的数据保护厂商Arkeia Software近日自豪的宣布,现今其支持的Linux平台达到第100个,这具有非常重要的意义.除了Linux以外,Arkeia还支持其他的开源操作系统,包括OpenSolaris和BSD系列. "我们应用Arkeia的Oracle代理已经4年了," Axioma公司的备份经理Ruben Acosta表示."其性能强大,可靠性高,是我们备份解决方案的理想之选." Axioma在Linux上同时部署了Arkei

微软发布开源版ASP.NET 5:支持在Windows/Mac/Linux上运行

在今日的博客文章中,Scott Guthrie宣布了ASP.NET 5.而它所带来的最大变化,就是自诞生15年来首次推出了支持跨平台的开源版本.作为Visual Studio CTP 6的一部分,这款流行的Web开发应用程序框架,现已能够在Windows.Mac.以及Linux平台上运行.本次更新还带来了其它一些非常重大的改 变,包括无需重编译即可看到代码变动的动态开发.NuGet依赖关系管理.配置管理的新选项.依赖集成.以及更快的HTTP性能. 除了可在Windows.Mac和Linux平台上

使Windows Vista 也支持cUrl扩展

我们都知道PHP的扩展在php.ini中只要将extension前的注释去掉就可以,可是我在Vista下使用php_curl.dll时,却怎么都无法正常运行,到底是什么原因呢,今天终于恍然大悟.   首先,如果打开了php_curl.dll,在phpinfo中看不到应该出现的,那么就要检查一下错误日志了,可以看到: PHP Warning:  PHP Startup: Unable to load dynamic library 'E:""php""ext"

使dreamweaver支持kid扩展名的方法

 在大量搜索和摸索后,终于成功.总结如下:(再次感谢网络中文章) 1.便Dreamweaver能识别*.kid文件,并当做html页面来处理,需要修改两个文件, (1)Extensions.txt------位于你的用户目录下,如 C:Documents and SettingsAdministratorApplication DataMacromediaDreamweaver 8 (2)MMDocumentTypes.xml----位于程序安装目录下,如D:toolsDreamweaver 8