如何把asp.net core服务做成为Windows Service服务

如果你的asp.net core服务最后会安装到Windows上运行,那么你肯定不想每次都开个控制台窗口来运行你的服务,因为这样每次开机你都需要手动打开你的服务,其次控制台窗口也容易被用户关掉,你的服务会意外地被终止运行。
使用下面的方法可以快速地把你的asp.net core程序做成Windows Service服务,这样你就可以让Windows来帮你管理服务了。

安装 Microsoft.Extensions.Hosting.WindowsServices 包

使用下面的命令,为你的asp.net core项目安装 Microsoft.Extensions.Hosting.WindowsServices 包

Install-Package Microsoft.Extensions.Hosting.WindowsServices

修改 Program.cs

你要做两件事情,第一为Host增加 UseWindowsServices,第二注掉 config.SetBasePath,因为Windows Service程序的默认文件夹是 c:\windows\system32,在那儿你找不到像appsettings.json这样的依赖文件的,在 UseWindowServices 以后,系统会自动把默认文件夹指向服务中的可执行文件所在的位置。下面是示例代码,注意我们把UseWindowsService放到了所有config的最前面。

 public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)            
                .UseWindowsService()
                .ConfigureAppConfiguration((hostingContext, config) =>
                {
                    //config.SetBasePath(Directory.GetCurrentDirectory());
                    config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
                    config.AddEnvironmentVariables();
                })
            .ConfigureLogging(logging =>
            {
                logging.ClearProviders();
                logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
            })
            .UseNLog()
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseNLog();
                webBuilder.UseStartup<Startup>();
            });            

发布asp.net core项目

使用下面的命令发布asp.net core项目

dotnet publish  pathToYourProject\yourAspNetProject.csproj --self-contained true -r win-x64 -c Release --output pathToYourProject\yourAspNetProject\bin\Release\netcoreapp3.1\publish\

注册Windows Service

使用下面的命令把你的asp.net core可执行文件注册为Windows Service

sc create yourServiceName binPath=pathToYourProject\yourAspNetProject\bin\Release\netcoreapp3.1\publish\\publish\IGT.EzPay.yourAspNetProject.exe

小结

这篇文章介绍如何把asp.net core做成Windows Service服务了和其中的注意事项。整个解决方案简洁高效。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

surfirst

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值