使用.NET Core创建Windows服务

1. 创建一个新的Worker Service项目

730ed6831e4025e2c3f0a2d63c024608.png

打开命令行工具(例如:PowerShell、CMD、或者终端),然后输入以下命令创建一个新的Worker Service项目:

dotnet new worker -n MyWorkerService

这个命令将会创建一个名为"MyWorkerService"的新项目。

2. 添加必要的NuGet包

对于Windows服务,我们需要添加Microsoft.Extensions.Hosting.WindowsServices NuGet包到我们的项目。在项目目录下(MyWorkerService),运行以下命令:

dotnet add package Microsoft.Extensions.Hosting.WindowsServices

这个软件包将为我们提供所需的扩展方法来注册Windows服务。

7b690517ca0e3ad07a1d70f4aa7365d3.png

3. 配置HostBuilder

现在我们需要设置.NET Core host以便在Windows服务中运行。更新Program.cs文件如下:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .UseWindowsService()
        .ConfigureServices((hostContext, services) =>
        {
            services.AddHostedService<Worker>();
        });

UseWindowsService()方法是Microsoft.Extensions.Hosting.WindowsServices库提供的,它可以让应用程序在Windows服务中运行。

4. 定义你的服务逻辑

在这个示例中,服务逻辑被定义在Worker类中。你可以根据你的需求修改它。

5. 发布你的服务

你可以通过运行以下命令进行发布:

dotnet publish --configuration Release --output ./publish

该命令将会创建一个发布目录,并将所有必要的文件放入该目录。

6. 安装和运行服务

在你的服务机器上,打开管理员模式的命令提示符,然后运行以下命令来安装并启动服务:

sc create MyWorkerService binPath= "C:\path\to\your\service\MyWorkerService.exe"
sc start MyWorkerService

请确保替换 "C:\path\to\your\service\MyWorkerService.exe"为你实际发布服务的路径。

098777f496fe9da4ea33681e8643676a.png

5a7f44c50210e69f80d9908351b67dc6.png

注意事项

  • 如果你的服务需要访问网络资源,请确保Windows服务有正确的访问权限。

  • 所有非处理过的异常都将导致服务停止。确保你的代码有适当的错误处理。

  • 在服务中运行的长时间操作必须是异步的,以防止线程阻塞。

  • 不要在OnStart()方法中放入太多初始化代码。如果需要较长时间来启动服务,Windows可能会认为服务未能正确启动。

-

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值