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:PublishWorkService
命令发布或通过 Visual Studio 2019 发布。
-
第四步:通过 sc.exe 工具来管理并创建 Windows 服务,通过 管理员模式 并打开控制台,输入:
sc.exe create FurionWorkerServices binPath= D:PublishWorkServiceFurionWorker.exe
** 注意=后面要有一个空格
创建成功后可通过 sc.exe query FurionWorkerServices 查看服务状态。 -
第五步:
-
(1)启动服务:sc.exe start FurionWorkerServices,启动之后就可以在 Windows 服务工具中查看了。
-
(2)停止服务:sc.exe stop NETCoreDemoWorkerService
-
(3)删除服务:sc.exe delete NETCoreDemoWorkerService
-
Tips:以上所有 sc.exe 命令必须在 管理员 模式下进行。