【.net framework】WINDOWS服务和控制台程序简单介绍
背景: 假如现在有两个项目,分别是控制台程序和windows服务(创建项目的时候可以选择不同类型)
控制台:
static async Task Main()
{while (true){Console.WriteLine("运行中...");await Task.Delay(5000);}
}windows服务:
using Microsoft.Extensions.Hosting;Host.CreateDefaultBuilder(args).UseWindowsService().ConfigureServices(services =>{services.AddHostedService<Worker>();}).Build().Run();public class Worker : BackgroundService
{protected override async Task ExecuteAsync(CancellationToken stoppingToken){while (!stoppingToken.IsCancellationRequested){Console.WriteLine("服务后台运行中...");await Task.Delay(5000, stoppingToken);}}
}控制台是需要自己手动启动的;windows服务在电脑开启就开始自启动运行(配置自动启动),遇到问题自动重启,因此windows服务开发完成之后需要安装和部署。
# 编译后生成 MyWindowsService.exe
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319# 安装服务
installutil "C:\Services\MyWindowsService.exe"# 启动服务
net start MyWindowsService# 停止服务
net stop MyWindowsService# 卸载服务
installutil /u "C:\Services\MyWindowsService.exe"完结撒花~
