发布辅助角色服务并安装到Windows

https://dotnetchina.gitee.io/furion/docs/process-service#2581-部署到-windows-service

记录辅助角色服务部署到Windows Service

使用VS2019创建完Windows辅助服务项目如何部署到Windows上呢?

  • 第一步:安装Microsoft.Extensions.Hosting.WindowsServices 拓展包
  • 第二步: 在 Program.cs 中添加 .UseWindowsService()
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

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

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .UseWindowsService()
                .Inject() // 需安装Furion包(默认情况下,Inject() 方法注册了 日志、缓存、依赖注入、加载配置、自定义 Startup 功能。
                          // 集成 Furion 后会自动扫描 Worker 类并实现自动注册。)
                .ConfigureServices((hostContext, services) =>
                {
                    // 注册数据库服务
                    //services.AddDatabaseAccessor(options =>
                    //{
                    //    options.AddDb<DefaultDbContext>();
                    //});

                    // 注册远程请求
                    services.AddRemoteRequest();


                    // 以下代码可不用编写,Furion 已实现自动注册 Worker;
                    services.AddHostedService<Worker>();//注册Worker类

                    // 等等其他服务注册

                });
    }
}

  • 第三步:发布 Worker Service,可通过 dotnet publish -c Release -o D:\Publish\WorkService
    命令发布或通过 Visual Studio 2019 发布。

  • 第四步:通过 sc.exe 工具来管理并创建 Windows 服务,通过 管理员模式 并打开控制台,输入:
    sc.exe create FurionWorkerServices binPath= D:\Publish\WorkService\FurionWorker.exe
    ** 注意=后面要有一个空格
    创建成功后可通过 sc.exe query FurionWorkerServices 查看服务状态。

  • 第五步:

  • (1)启动服务:sc.exe start FurionWorkerServices,启动之后就可以在 Windows 服务工具中查看了。

  • (2)停止服务:sc.exe stop NETCoreDemoWorkerService

  • (3)删除服务:sc.exe delete NETCoreDemoWorkerService

  • Tips:以上所有 sc.exe 命令必须在 管理员 模式下进行。

posted @ 2021-08-07 10:01  朕在coding  阅读(299)  评论(0编辑  收藏  举报