.net core api部署为windows服务


一、项目改造

添加nuget包:Microsoft.Extensions.Hosting.WindowsServices

添加JOCAPIService类:

JOCAPIService.cs

C# 全选
public class JOCAPIService : BackgroundService
{
	public JOCAPIService(ILoggerFactory loggerFactory)
	{
		Logger = loggerFactory.CreateLogger<JOCAPIService>();
	}

	public ILogger Logger { get; }

	protected override async Task ExecuteAsync(CancellationToken stoppingToken)
	{
		Logger.LogInformation("ServiceA is starting.");

		stoppingToken.Register(() => Logger.LogInformation("ServiceA is stopping."));

		while (!stoppingToken.IsCancellationRequested)
		{
			Logger.LogInformation("ServiceA is doing background work.");

			await Task.Delay(TimeSpan.FromSeconds(5), stoppingToken);
		}

		Logger.LogInformation("ServiceA has stopped.");
	}
}

修改Program.cs代码

C# 全选
public static IHostBuilder CreateHostBuilder(string[] args) =>
	Host.CreateDefaultBuilder(args)
		.ConfigureWebHostDefaults(webBuilder =>
		{
			webBuilder.UseStartup<Startup>();
		}).ConfigureServices(services =>
		{
			services.AddHostedService<JOCAPIService>();
		}).UseWindowsService(options =>
		{
			options.ServiceName = "JOCAPI";
		});

.net core api部署为windows服务

 

二、安装服务

1) PowserShell安装脚本

创建服务:

PowerShell 全选
New-Service -Name "JOCAPI" -BinaryPathName "D:\publish\JOCAPI.Start.exe" -DisplayName "JOCAPI" -Description "JOC开发框架API服务" -StartupType Automatic

删除服务:

PowerShell 全选
sc.exe delete "JOCAPI"

启动服务:

PowerShell 全选
# 启动服务
Start-Service -Name “JOCAPI”

2) nssm.exe安装

.net core api部署为windows服务

服务配置:configService.bat

PowerShell 全选
set serviceName="TCEServices1"
set exePath="JOCAPI.Start.exe"

为了解决多个脚本文件中都存在serviceName,如果要改的话要改动四个文件,有点繁琐,优化一下,增加一个configService.bat文件,要调整服务配置的时候只需要更改这一个bat脚本就行了

安装服务:installService.bat

PowerShell 全选
cd /d %~dp0
call configService.bat
nssm install %serviceName% %~dp0\%exePath%
nssm start %serviceName%
pause

卸载服务:uninstallService.bat

PowerShell 全选
cd /d %~dp0
call configService.bat
nssm stop %serviceName%
nssm remove %serviceName% confirm
pause

启动服务:startService.bat

PowerShell 全选
cd /d %~dp0
call configService.bat
nssm start %serviceName%
pause

停止服务:stopService.bat

PowerShell 全选
cd /d %~dp0
call configService.bat
nssm stop %serviceName%
pause

 

 

 

 

 

 

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
张国生
上一篇:nginx安装为windows服务
下一篇:VSCode 正则表达式跨行搜索
评论列表

发表评论

评论内容
昵称:
关联文章

.net core api部署windows服务
.NET Core 项目windows server中部署
window server部署open VPN
nginx安装windows服务
探索 dotnet core 何在 Windows7 系统需要补丁的原因
.net Core项目 IIS部署运行异常信息输出
Python Windows服务
.NET5 ASP.NET Core 添加API限流
在ASP.NET Core web API中使用Swagger/OpenAPI(Swashbuckle)
CentOS7部署OpenVPN服务
热更新部署
Windows服务程序开发
.Net Minimal API 介绍
.Net Core 5.x Api开发笔记 -- 基础日志(Log4Net)(八)
windows平台的分布式微服务解决方案(5)--Web服务/WebApi的负载均衡
《步步入门》 .NET 6 部署到Linux
.NET Core发布后IIS部署无法访问静态文件
C# .net项目Docker方式部署
使用.NET 6开发TodoList应用(30)——实现Docker打包和部署
YESWEB项目 生产环境部署

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码