您现在的位置是:亿华云 > 人工智能
聊聊.Net如何实现Windows服务
亿华云2025-10-09 06:58:04【人工智能】3人已围观
简介本文转载自微信公众号「UP技术控」,作者conan5566。转载本文请联系UP技术控公众号。Topshelf 是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一
本文转载自微信公众号「UP技术控」,聊聊作者conan5566。实现转载本文请联系UP技术控公众号。聊聊
Topshelf 是实现一个开源的跨平台的宿主服务框架,支持Windows和Mono,聊聊只需要几行代码就可以构建一个很方便使用的站群服务器实现服务宿主。
使用Topshelf可以非常方便的聊聊将一个C#控制台程序部署成为一个Windows Service,使用它可以很方便的构建跨平台服务寄主,而在调试时直接以控制台的实现形式运行即可,非常方便。聊聊
TopShelf 安装不需要依赖 .net framework 框架中的服务器租用实现 InstallUtil.exe 工具。
static void Main(string[] args) { HostFactory.Run(x => { x.UseAssemblyInfoForServiceInfo(); x.Service<WriteTxtClass>(w => { w.ConstructUsing(name => new WriteTxtClass()); //使用 WriteTxtClass实体 w.WhenStarted(tc => tc.WriteTxtStart()); //开始服务触发 WriteTxtStart 函数 w.WhenStopped(tc => tc.WriteTxtStop()); //结束服务触发 WriteTxtStop 函数 }); x.SetServiceName("TopShelfService1"); //服务名 x.SetDisplayName("TopShelfService1");//服务显示名称 x.SetInstanceName("TopShelfService1"); //服务显示名称后面的聊聊描叙 x.SetDescription("TopShelfService1 is Test Services"); // 服务描叙 x.RunAsLocalSystem(); x.StartAutomatically(); }); } public class WriteTxtClass { public void WriteTxtStart() { string filePath = AppDomain.CurrentDomain.BaseDirectory + "log\\test.txt"; if (!File.Exists(filePath)) { FileStream stream = new FileStream(filePath, FileMode.Create); StreamWriter writer = new StreamWriter(stream, Encoding.Default); writer.WriteLine(DateTime.Now.ToString() + ":Start Service");//写入一行,写完后会自动换行 writer.Close();//释放内存 stream.Close();//释放内存 } else { FileStream stream = new FileStream(filePath,实现 FileMode.Append);//再原有文件中追加记录,不覆盖 StreamWriter writer = new StreamWriter(stream,聊聊 Encoding.Default); writer.WriteLine(DateTime.Now.ToString() + ":Start Service");//写入一行,写完后会自动换行 writer.Close();//释放内存 stream.Close();//释放内存 } } public void WriteTxtStop() { string filePath = AppDomain.CurrentDomain.BaseDirectory + "log\\test.txt"; if (!File.Exists(filePath)) { FileStream stream = new FileStream(filePath,实现 FileMode.Create); StreamWriter writer = new StreamWriter(stream, Encoding.Default); writer.WriteLine(DateTime.Now.ToString() + ":Stop Service");//写入一行,写完后会自动换行 writer.Close();//释放内存 stream.Close();//释放内存 } else { FileStream stream = new FileStream(filePath,聊聊 FileMode.Append);//再原有文件中追加记录,不覆盖 StreamWriter writer = new StreamWriter(stream, Encoding.Default); writer.WriteLine(DateTime.Now.ToString() + ":Stop Service");//写入一行,亿华云写完后会自动换行 writer.Close();//释放内存 stream.Close();//释放内存 } } }安装和卸载windows服务 TopShelfService.exe install
#安装Windows服务 TopShelfService.exe uninstall #卸载Windows服务
很赞哦!(1)
相关文章
- 为什么起域名意义非凡?起域名有什么名堂?
- 公司在注册域名时还需要确保邮箱的安全性。如果邮箱不安全,它只会受到攻击。攻击者可以直接在邮箱中重置密码并攻击用户。因此,有必要注意邮箱的安全性。
- 3、查看排名
- 第五步:重复第四步,直到找到正确的纪录。
- 3、查看排名
- 记住那句话,域名向来不属于任何人,谁先买就归谁,购买期过后,域名又不再属于任何人。
- 一下域名,看有没有显示出你所解析的IP,如果有,就说明解析是生效的;如果没有,就说明解析是不生效的。
- cm域名有什么独特之处?新人要了解cm域名哪些?
- 审核通过的域名将显示在域名竞拍页面,并进入正式拍卖期,买家可以在拍卖周期内出价,加价幅度与拍卖保证金说明,点此查看。
- 为了避免将来给我们的个人站长带来的麻烦,在选择域名后缀时,我们的站长最好省略不稳定的后缀域名,比如n,因为我们不知道策略什么时候会改变,更不用说我们将来是否还能控制这个域名了。因此,如果站长不是企业,或者有选择的话,如果不能选择域名的cn类,最好不要选择它。