翼度科技»论坛 编程开发 .net 查看内容

轻松打造Windows服务:将.NET Core项目转化为无缝运行的后台服务

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
 
概述:本教程教您如何将.NET Core项目打造成Windows服务,实现无需用户登录的后台运行。通过简单步骤,您可以快速部署并管理服务,确保应用持续高效运行。
将.NET项目制作成Windows服务可以让你的应用在后台持续运行,无需用户登录。以下是将.NET Core项目制作成Windows服务的步骤:
步骤:

1. 创建.NET Core 项目

首先,确保你的项目是一个.NET Core 项目。你可以通过使用以下命令创建:
  1. dotnet new console -n YourServiceName
复制代码
2. 安装 Microsoft.Extensions.Hosting.WindowsServices 包

使用以下命令安装必要的NuGet包:
  1. dotnet add package Microsoft.Extensions.Hosting.WindowsServices
复制代码
3. 修改 Program.cs

修改Program.cs以启用Windows服务支持:
  1. using Microsoft.Extensions.DependencyInjection;
  2. using Microsoft.Extensions.Hosting;
  3. using Microsoft.Extensions.Logging;
  4. public class Program
  5. {
  6.     public static void Main(string[] args)
  7.     {
  8.         CreateHostBuilder(args).Build().Run();
  9.     }
  10.     public static IHostBuilder CreateHostBuilder(string[] args) =>
  11.         Host.CreateDefaultBuilder(args)
  12.             .UseWindowsService()  // 启用Windows服务支持
  13.             .ConfigureServices((hostContext, services) =>
  14.             {
  15.                 services.AddHostedService<Worker>();
  16.             });
  17. }
复制代码
4. 创建 Hosted Service 类

在项目中创建一个继承BackgroundService的类,例如:
  1. using System;
  2. using System.Threading;
  3. using System.Threading.Tasks;
  4. using Microsoft.Extensions.Hosting;
  5. using Microsoft.Extensions.Logging;
  6. public class Worker : BackgroundService
  7. {
  8.     private readonly ILogger<Worker> _logger;
  9.     public Worker(ILogger<Worker> logger)
  10.     {
  11.         _logger = logger;
  12.     }
  13.     protected override async Task ExecuteAsync(CancellationToken stoppingToken)
  14.     {
  15.         while (!stoppingToken.IsCancellationRequested)
  16.         {
  17.             _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
  18.             await Task.Delay(1000, stoppingToken);
  19.         }
  20.     }
  21. }
复制代码
部署 Windows 服务:

1. 构建项目

在项目目录执行以下命令:
  1. dotnet publish -c Release -r win10-x64
复制代码
2. 安装服务

在发布目录中找到生成的可执行文件,打开命令提示符(以管理员身份运行):
  1. sc create YourServiceName binPath= "C:\Path\To\Your\Service\YourServiceName.exe"
复制代码
3. 启动服务
  1. sc start YourServiceName
复制代码
注意:


  • 确保你的服务在日志中有足够的信息,以便排查问题。
  • 使用sc命令可以方便地查看和管理服务,例如使用sc stop YourServiceName停止服务。
这是一个简单的例子,具体的细节可能因项目的复杂性而有所不同。根据实际需要调整代码和配置。
 



来源:https://www.cnblogs.com/hanbing81868164/p/17995752
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具