博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Topshelf 支持Mono 扩展Topshelf.Linux
阅读量:6340 次
发布时间:2019-06-22

本文共 1214 字,大约阅读时间需要 4 分钟。

这篇文章大家可以了解到使用Topshelf可以很好的支持Windows服务的开发,但是它和Mono不兼容,Github上有一个扩展 可以很好兼容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
(s => { s.ConstructUsing(() => new SampleService()); s.WhenStarted(v => v.Start()); s.WhenStopped(v => v.Stop()); }); 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://fihoa.baihongyu.com/

你可能感兴趣的文章
oracle故障解决
查看>>
tcpdump
查看>>
数据库内存结构
查看>>
利用Shell开发跳板机功能脚本案例
查看>>
51CTO的技术门诊谈OSSIM
查看>>
六年心路成长 —— 做自己
查看>>
ios电话拨打进行监听电话状态
查看>>
京东基于Spark的风控系统架构实践和技术细节
查看>>
什么时候使用CountDownLatch
查看>>
C#之MemberwiseClone与Clone
查看>>
Android性能优化之利用Rxlifecycle解决RxJava内存泄漏
查看>>
转: 如何为你的开源项目选择一个合适的开源协议?
查看>>
关系型数据库和NOSQL数据库对比
查看>>
Atitit 记录方法调用参数上下文arguments
查看>>
webstorm常用功能FTP,及常用快捷键
查看>>
eclipse html 打开方式
查看>>
[求助] win7 x64 封装 出现 Administrator.xxxxx 的问题
查看>>
人类投资经理再也无法击败电脑的时代终将到来了...
查看>>
一个最小手势库的实现
查看>>
HoloLens开发手记 - Vuforia开发概述 Vuforia development overview
查看>>