C# 使用Topshelf快速创建Windows服务程序

前言:

Topshelf 用于将控制台应用程序封装成易于编写、调试和部署 的Windows 服务。它允许您使用简单的命令行语法创建和安装 Windows 服务,而无需编写繁琐的安装代码。

使用 Topshelf,您可以创建一个具有自定义启动行为、暂停和继续功能以及自定义命令行选项的 Windows 服务。它还可以将 Windows 服务作为控制台应用程序运行,以便在开发和调试时更容易地查看日志和其他输出。

总之,Topshelf 可以简化 Windows 服务的创建和管理,使其更易于使用和维护。

下面是Topshelf 的简单示例:

  1. 首先,您需要安装 Topshelf 库。可以使用 NuGet 包管理器来安装它,或者在 Visual Studio 中使用“管理 NuGet 包”对话框。
    1. 接下来,创建一个控制台应用程序,并添加对 Topshelf 的引用。然后,在 Program.cs 文件中编写以下代码:
    using System;
    using Topshelf;
    
    namespace MyWindowsService
    {
        class Program
        {
            static void Main(string[] args) { HostFactory.Run(x => { x.Service<MyService>(s => { s.ConstructUsing(name => new MyService()); s.WhenStarted(tc => tc.Start()); s.WhenStopped(tc => tc.Stop()); }); x.RunAsLocalSystem(); x.SetServiceName("MyService"); x.SetDisplayName("My Service"); x.SetDescription("This is my sample service."); }); } } class MyService { public void Start() { // TODO: Add code to start your service Console.WriteLine("Service started."); } public void Stop() { // TODO: Add code to stop your service Console.WriteLine("Service stopped."); } } }
    

    在这个示例中,我们创建了一个名为 MyService 的 Windows 服务,并定义了 Start 和 Stop 方法来启动和停止服务。我们还为服务设置了一些元数据,例如服务名称、显示名称和描述。

  2. 要运行此服务,您可以在 Visual Studio 中按 F5,或者通过命令行运行可执行文件并传递参数 install、start、stop 或 uninstall,例如:
cd /d %~dp0
MyWindowsService.exe uninstall
MyWindowsService.exe insatll
sc config MyService type= interact type= own
MyWindowsService.exe start

这将安装、启动、停止或卸载 MyService 服务。您可以在控制面板的“管理工具”下找到它,或者使用命令行工具 sc。

注意:如果安装脚本是.bat文件,输入后的文件格式可能变成UTF-8 BOM,需要把格式改成ASCII才能执行成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值