通八洲科技

C#如何创建Windows服务 C#编写和安装Windows Service教程

日期:2025-12-26 00:00 / 作者:畫卷琴夢
C#创建Windows服务需基于.NET Framework,继承ServiceBase并重写OnStart/OnStop;添加安装程序设置ServiceName和Account;用管理员权限的InstallUtil.exe安装;调试需条件编译模拟控制台运行。

C#创建Windows服务的基本步骤

Windows服务是后台运行的长期进程,不依赖用户登录。用C#开发需借助System.ServiceProcess命名空间,核心是继承ServiceBase类并重写OnStartOnStop方法。

编写一个最简Windows服务

新建“Windows Service (.NET Framework)”项目(注意:.NET Core/.NET 5+需用Worker Service替代,原生ServiceBase仅支持.NET Framework)。

protected override void OnStart(string[] args)
{
  File.AppendAllText(@"C:\log.txt", $"服务启动于 {DateTime.Now}\r\n");
}

protected override void OnStop()
{
  File.AppendAllText(@"C:\log.txt", $"服务停止于 {DateTime.Now}\r\n");
}

编译并安装服务

安装不是双击exe,必须用命令行工具InstallUtil.exe(随.NET Framework安装)。

调试与卸载技巧

服务不能直接F5调试,需模拟运行环境。

#if DEBUG
  Service1 myService = new Service1();
  myService.OnStart(null);
  Console.WriteLine("按任意键停止..."); Console.ReadKey();
  myService.OnStop();
#else
  ServiceBase[] ServicesToRun = new ServiceBase[]{new Service1()};
  ServiceBase.Run(ServicesToRun);
#endif

基本上就这些。关键点是框架匹配、安装程序配置、管理员权限执行安装。不复杂但容易忽略细节。