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

开发 后端
将.NET项目制作成Windows服务可以让你的应用在后台持续运行,无需用户登录。以下是将.NET Core项目制作成Windows服务的步骤。

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

将.NET项目制作成Windows服务可以让你的应用在后台持续运行,无需用户登录。以下是将.NET Core项目制作成Windows服务的步骤:

步骤:

1. 创建.NET Core 项目

首先,确保你的项目是一个.NET Core 项目。你可以通过使用以下命令创建:

dotnet new console -n YourServiceName

2. 安装 Microsoft.Extensions.Hosting.WindowsServices 包

使用以下命令安装必要的NuGet包:

dotnet add package Microsoft.Extensions.Hosting.WindowsServices

3. 修改 Program.cs

修改Program.cs以启用Windows服务支持:

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .UseWindowsService()  // 启用Windows服务支持
            .ConfigureServices((hostContext, services) =>
            {
                services.AddHostedService<Worker>();
            });
}

4. 创建 Hosted Service 类

在项目中创建一个继承BackgroundService的类,例如:

using System;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

public class Worker : BackgroundService
{
    private readonly ILogger<Worker> _logger;

    public Worker(ILogger<Worker> logger)
    {
        _logger = logger;
    }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        while (!stoppingToken.IsCancellationRequested)
        {
            _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
            await Task.Delay(1000, stoppingToken);
        }
    }
}

部署 Windows 服务:

1. 构建项目

在项目目录执行以下命令:

dotnet publish -c Release -r win10-x64

2. 安装服务

在发布目录中找到生成的可执行文件,打开命令提示符(以管理员身份运行):

sc create YourServiceName binPath= "C:\Path\To\Your\Service\YourServiceName.exe"

3. 启动服务

sc start YourServiceName

注意:

  • 确保你的服务在日志中有足够的信息,以便排查问题。
  • 使用sc命令可以方便地查看和管理服务,例如使用sc stop YourServiceName停止服务。

这是一个简单的例子,具体的细节可能因项目的复杂性而有所不同。根据实际需要调整代码和配置。

责任编辑:姜华 来源: 今日头条
相关推荐

2009-08-14 17:04:19

Windows后台服务

2024-05-20 09:39:02

.NETurl线程池

2011-08-25 09:32:30

Visual Stud

2009-06-04 16:19:52

GlassFish作为

2021-06-28 05:25:26

Windows 11操作系统微软

2012-12-27 10:30:46

Android开发Service后台服务

2018-06-12 15:07:57

IT

2018-06-20 09:09:09

数据存储信息

2018-12-13 09:27:31

后台服务架构

2012-10-10 12:36:44

打印机故障

2024-02-26 07:31:26

WindowsLinuxmacOS

2024-04-25 11:40:23

云计算云预算混合云

2020-09-08 10:08:45

分析

2022-08-27 15:27:34

LinuxdockerCompose

2021-08-03 15:33:05

gRPC服务器

2009-08-04 17:34:27

Erlang的Acto

2010-01-11 15:12:30

VB.NET特殊窗体

2016-02-18 16:40:29

SaaS虚拟化自动化

2021-07-14 06:45:49

Windows.NetTopshelf

2013-11-29 10:08:19

SDN大数据
点赞
收藏

51CTO技术栈公众号