【.net framework】WINDOWS服务和控制台程序简单介绍

背景: 假如现在有两个项目,分别是控制台程序和windows服务(创建项目的时候可以选择不同类型)
控制台:

csharp 复制代码
static async Task Main()
{
    while (true)
    {
        Console.WriteLine("运行中...");
        await Task.Delay(5000);
    }
}

windows服务:

csharp 复制代码
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服务开发完成之后需要安装和部署。

csharp 复制代码
# 编译后生成 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"

完结撒花~

相关推荐
小羊没烦恼!2 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
rockmelodies2 天前
# Windows Server2008 R2 Standard(SP1镜像U盘)重置本地管理员密码【完整详细步骤】
windows·密码破解
kakakahahahaha3 天前
Windows C盘空间不足的安全清理与迁移流程
windows·电脑·笔记本电脑·软件需求·c盘清理
做咩啊~3 天前
远程连接提示:身份验证错误,要求的函数不受支持
windows
_Jonas3 天前
.net framework开发环境正式环境配置文件的切换
.net·wpf
百事牛科技3 天前
PPT只读怎么取消?四种情况分别处理
windows·powerpoint
熊明才4 天前
WSL2 网络突然瘫痪(Network is unreachable / 没有 eth0)最短修复指南(2026年9月20日亲测可用)
linux·windows·wsl2
xbzb4 天前
Windows 启动故障修复知识整理:蓝屏 / 无限重启 / 盘符 X / 无 PE 盘
windows
我命由我123454 天前
Mac 操作系统 - 一些使用记录
运维·windows·学习·系统安全·运维开发·mac·学习方法