【.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"

完结撒花~

相关推荐
Mr_Xuhhh6 小时前
Java泛型进阶:从基础到高级特性完全指南
开发语言·windows·python
建行一世6 小时前
【Windows笔记本大模型“傻瓜式”教程】使用LLaMA-Factory工具来完成对Windows笔记本大模型Qwen2.5-3B-Instruct微调
windows·ai·语言模型·llama
王者鳜錸10 小时前
Windows安装OpenClaw龙虾助手
windows·龙虾·自动化脚本执行管家
大明者省12 小时前
Label Studio安装与启动
windows
武藤一雄12 小时前
C# 异常(Exception)处理避坑指南
windows·microsoft·c#·.net·.netcore·鲁棒性
步步为营DotNet12 小时前
剖析.NET 11 中 Native AOT 在高性能客户端应用的极致实践
.net
soragui13 小时前
【Python】第 4 章:Python 数据结构实现
数据结构·windows·python
橘子编程14 小时前
操作系统原理:从入门到精通全解析
java·linux·开发语言·windows·计算机网络·面试
步步为营DotNet15 小时前
深度探索.NET Aspire在云原生应用性能与安全加固的创新实践
安全·云原生·.net
我是唐青枫16 小时前
C#.NET TPL Dataflow 深入解析:数据流管道、背压控制与实战取舍
c#·.net