欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

.Net Core以windows服务方式部署

时间:2022-09-29 11:05:50|栏目:.NET代码|点击:

前言

netcore用了这么久,虽然多数都是部署在centos系统,但也有部署在windows上的情况。最省力的部署方式是发布后直接在发布目录打开cmd,运行dotnet命令。虽然很省力,但是保留一个命令窗口,如果需要同时部署多个程序的话,就会保留多个窗口,而且还不能叉掉,对强迫症(我这种)来说简直不能忍。。。。

所以更好的部署方式就是把程序以windows服务的方式部署,还可以设置自动启动,节省一点运维成本。

怎么做?

首先准备一个core程序,然后引入这个包:

再然后找到main入口:

public static void Main(string[] args)
{
    var host = CreateWebHostBuilder(args).Build();
    if (Debugger.IsAttached)
        host.Run();
    else
        host.RunAsService();
}

Debugger.IsAttached的意思是:程序是否以debug模式启动,是的话返回true,否则false

这几行代码的意思就是:如果是debug模式,就还保持窗口启动,到了发布环境就以服务方式启动。

为什么呢?因为只以服务启动程序的话,debug启动会报错,这样写更方便。

就这?

当然不是。我们还需要在服务器搞些动作。

当我们把发布好的文件在服务器保存好以后,管理员身份打开cmd,执行这条命令:

sc create 你的服务名称 binPath= "\"C:\program files\dotnet\dotnet.exe\" \"程序发布目录\"" DisplayName= "你的服务名称" start= auto 

(重点:binPath、DisplayName、start这三个参数的等号后面必须带一个空格)

然后就可以在服务列表里看到它了:

如果上面的操作都没问题,但服务就是跑不起来,有可能是SDK版本不对,下对版本就可以了。

最后贴上官方文档地址:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-2.1&tabs=visual-studio

上一篇:C#实现WPF项目复制和移动文件夹

栏    目:.NET代码

下一篇:C#处理类型和二进制数据转换并提高程序性能

本文标题:.Net Core以windows服务方式部署

本文地址:http://www.codeinn.net/misctech/214990.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有