全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C#怎么创建Windows服务 C#编写后台服务程序方法

C#中创建Windows服务需继承ServiceBase类(.NET Framework)或使用Worker Service+UseWindowsService(.NET 6+),通过InstallUtil/sc create安装,由SCM管理启动停止。

在C#中创建Windows服务,核心是继承 ServiceBase 类,并通过安装工具注册到Windows服务管理器。它不是普通控制台或WinForm程序,不能直接双击运行,必须安装后由SCM(服务控制管理器)启动。

一、新建Windows服务项目(.NET Framework)

注意:.NET Core / .NET 5+ 不再原生支持传统Windows服务项目模板,但可通过 Worker Service + Microsoft.Extensions.Hosting.WindowsServices 实现等效功能。以下以经典 .NET Framework 为例(兼容性好、教程多):

  • Visual Studio 中新建项目 → 选择“Windows Service (.NET Framework)”
  • 默认生成一个继承 ServiceBase 的类(如 Service1.cs
  • OnStart() 中写启动逻辑(如启动定时器、监听端口、轮询数据库)
  • OnStop() 中释放资源(关闭线程、断开连接、保存状态)

二、关键代码结构示例

以简单日志写入为例:

protected override void OnStart(string[] args)
{
    // 启动一个后台线程(或使用Timer),避免阻塞OnStart
    _timer = new Timer(WriteLog, null, TimeSpan.Zero, TimeSpan.FromMinutes(1));
}

private void WriteLog(object state)
{
    File.AppendAllText(@"C:\Logs\MyService.log", 
        $"[{DateTime.Now:yyyy-MM-dd HH:mm:ss}] Service is running.\r\n");
}

protected override void OnStop()
{
    _timer?.Dispose();
}

三、安装与部署服务

仅编译不等于可运行。必须安装才能被系统识别:

  • 给项目添加“安装程序”(右键服务设计器 → “添加安装程序”)→ 自动生成 ProjectInstaller.cs
  • 设置 serviceInstaller1.ServiceNameserviceProcessInstaller1.Account(推荐 LocalSystem 或指定域账户)
  • 命令行安装(管理员权限运行):
    InstallUtil.exe MyService.exe(路径需完整,InstallUtilC:\Windows\Microsoft.NET\Framework\v4.0.30319\ 下)
  • 卸载用:InstallUtil.exe /u MyService.exe

四、.NET 6/7/8 推荐方式:Worker Service + Windows Services 支持

更现代、跨平台友好的做法:

  • 新建“Worker Service”项目(.NET 6+)
  • NuGet 安装:Microsoft.Extensions.Hosting.WindowsServices
  • 修改 Program.cs
    Host.CreateDefaultBuilder(args).UseWindowsService()
  • Worker.csExecuteAsync 中写后台逻辑(支持 DI、配置、日志)
  • 发布后,用 sc create 命令注册:
    sc create MyWorkerService binPath= "D:\path\MyWorker.exe" start= auto

基本上就这些。核心区别在于:传统方式重在 ServiceBase 生命周期控制;新方式重在 Hosting 模型复用,更轻量、易测试、易维护。


# windows  # app  # 端口  # 工具  # win  # microsoft  # 区别  # c#  # .net  # yy  # auto  # 继承  # 线程  # visual studio  # 数据库  # 为例  # 管理器  # 安装程序  # 必须安装  # 右键  # 双击  # 可通过  # 命令行  # 自动生成  # 性好 


相关文章: 如何快速搭建高效简练网站?  网站制作的步骤包括,正确网址格式怎么写?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  网站微信制作软件,如何制作微信链接?  制作网站外包平台,自动化接单网站有哪些?  如何在景安服务器上快速搭建个人网站?  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何通过.red域名打造高辨识度品牌网站?  python的本地网站制作,如何创建本地站点?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  建站之星如何助力网站排名飙升?揭秘高效技巧  网站制作费用多少钱,一个网站的运营,需要哪些费用?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  如何解决ASP生成WAP建站中文乱码问题?  如何通过老薛主机一键快速建站?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  如何破解联通资金短缺导致的基站建设难题?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  h5在线制作网站电脑版下载,h5网页制作软件?  已有域名如何免费搭建网站?  潮流网站制作头像软件下载,适合母子的网名有哪些?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  韩国服务器如何优化跨境访问实现高效连接?  建站之星下载版如何获取与安装?  建站之星多图banner生成与模板自定义指南  网站网页制作专业公司,怎样制作自己的网页?  如何配置FTP站点权限与安全设置?  如何自定义建站之星网站的导航菜单样式?  名字制作网站免费,所有小说网站的名字?  如何用狗爹虚拟主机快速搭建网站?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  如何快速搭建高效WAP手机网站?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  如何在Ubuntu系统下快速搭建WordPress个人网站?  成都网站制作报价公司,成都工业用气开户费用?  如何配置WinSCP新建站点的密钥验证步骤?  如何在阿里云购买域名并搭建网站?  实例解析Array和String方法  免费ppt制作网站,有没有值得推荐的免费PPT网站?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  公众号网站制作网页,微信公众号怎么制作?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  宝塔Windows建站如何避免显示默认IIS页面? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。