.NET8 创建和部署windows服务图文教程

365bet开户平台 2025-07-31 08:10:28 admin 阅读 9766
.NET8 创建和部署windows服务图文教程

本文记录了如何使用Visual studio2022创建.NET8 windows服务,然后在服务器安装windows服务设置为自动启动的过程。

1、创建一个worker service项目

使用Visual studio2022创建一个新项目,选择辅助角色服务,如图所示:

设置项目名称,例如WorkerService。

选择.NET8框架,点击创建。

我创建了一个名为WorkerService的项目,创建完成后的目录结构如图所示:

2、安装Microsoft.Extensions.Hosting.WindowsServices

当前项目可在linux下运行,但是还不能以服务的方式在windows上安装运行。所以需要安装Microsoft.Extensions.Hosting.WindowsServices包。可以通过Nuget安装。如果是使用.NET8版本的话可以选择8.x.x版本的包安装。如下图所示,我安装了Microsoft.Extensions.Hosting.WindowsServices 8.0.0版本。

3、添加Windows服务并设置服务名称

在Program.cs文件中使用AddWindowsService方法并设置服务名称。它会显示在Windows服务列表中。安装Windows服务时可以自定义服务名称,这里只是设置一个默认名称。

using WorkerService;

var builder = Host.CreateApplicationBuilder(args);

builder.Services.AddWindowsService(options => {

// 设置服务名称

options.ServiceName = "MyServiceName";

});

builder.Services.AddHostedService();

var host = builder.Build();

host.Run();

4、修改Worker.cs,编写需要执行的代码

在Worker.cs中,可以在ExecuteAsync方法里编写需要执行的代码。也可以重写StartAsync,StopAsync方法添加需要在服务启动和结束时需要执行的代码。

namespace WorkerService

{

public class Worker : BackgroundService

{

private readonly ILogger _logger;

public Worker(ILogger logger)

{

_logger = logger;

}

protected override async Task ExecuteAsync(CancellationToken stoppingToken)

{

while (!stoppingToken.IsCancellationRequested)

{

if (_logger.IsEnabled(LogLevel.Information))

{

_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);

}

await Task.Delay(1000, stoppingToken);

}

}

public override Task StartAsync(CancellationToken cancellationToken)

{

_logger.LogInformation("Worker starting at: {time}", DateTimeOffset.Now);

return base.StartAsync(cancellationToken);

}

public override Task StopAsync(CancellationToken cancellationToken)

{

_logger.LogInformation("Worker ending at: {time}", DateTimeOffset.Now);

return base.StopAsync(cancellationToken);

}

}

}

5、发布程序

编写代码完成后,可以发布程序。右键项目,选择发布,然后选择将程序发布到本地文件夹。默认发布到\workerservice\bin\release\net8.0\publish文件夹下。

6、安装Windows服务

通过sc create命令创建Windows服务。命令里也可以设置在服务列表里显示的服务名称。下面的命令展示了我创建了一个名为MyServiceName的Windows服务。

sc create MyServiceName binpath="D:\Service\WorkerService\WorkderService.exe"

CreateService 成功说明Windows服务创建成功了。

可以在服务列表里看到刚才创建的LeavescnWorkerService服务了。我们可以启动服务,也可以右键设置属性,把服务设置为自动启动。

可以通过sc delete 命令删除Windows服务。

相关文章

霞娈名字寓意,霞娈名字的含义,霞娈取名的寓意和含义是什么
巧克力酱的做法
中国VS日本(2023/2026世外亚洲)