当前位置: 移动技术网 > IT编程>开发语言>.net > 如何优雅的利用Windows服务来部署ASP.NET Core程序

如何优雅的利用Windows服务来部署ASP.NET Core程序

2019年02月15日  | 移动技术网IT编程  | 我要评论

年华 庄飞扬,qq311,尤寒波

上一篇文章中我给大家讲述了五种部署asp.net core网站的方法,其中有一种方式是通过windows服务来进行部署,这样既可以做到开启自启动,又不会因为iis的反向代理而损失部分性能。但是美中不足的是需要借助第三方软件nssm来进行,那么有没有更好并且优雅的方式来进行asp.net core网站的windows服务方式部署呢?答案是肯定的!

作者:依乐祝
原文链接:

今天这篇文章我会利用番茄工作法来进行写作,预计用时四十分钟。所以,话不多说,开撸吧!

  1. 新建一个asp.net core网站项目,如下图所示我将其命名为testagent

    1550148209271

  2. 如下所示需要添加两个nuget包,这就是大名鼎鼎的newlife.core以及newlife.agent了

    install-package newlife.core
    install-package newlife.agent

    安装后如下所示:

    1550148424551

  3. 这时候我们稍微修改program 在其中添加一个服务类并继承自 agentservicebase,如下所示:

    public class testagentservices : agentservicebase<testagentservices>
            {
                #region 属性
    
                /// <summary>显示名</summary>
                public override string displayname => "agent测试服务";
    
                /// <summary>描述</summary>
                public override string description => "agent测试服务的描述信息!";
                #endregion
    
                #region 构造函数
                /// <summary>实例化一个代理服务</summary>
                public testagentservices()
                {
                    // 一般在构造函数里面指定服务名
                    servicename = "testagent";
                }
                #endregion
    
                #region 执行任务
                protected override void startwork(string reason)
                {
    
                    createwebhostbuilder(_args).build().run();
                    writelog("当前时间{0}", datetime.now.tostring("yyyy-mm-dd hh:mm:ss"));
                    base.startwork(reason);
                }
                #endregion
            }

    如上所示:我们重写下显示的名字以及描述信息,并把createwebhostbuilder(_args).build().run(); 移到这个服务的startwork 方法中.

  4. mian方法中调用testagentservices.servicemain(); 来引导进入我们上面新建的服务类。

  5. 以管理员身份打开powershell,并利用dotnet run 命令如下图所示运行我们的程序,看到如下界面:

    1550149894931

    如上所示:显示了当前服务的名称,描述以及状态,黄色字体部分列出了对应的操作命令,我们只需要输入对应的数据即可进行操作

  6. 我们这里直接输入数字2 来进行安装服务,如下所示:

    1550150103441

    这时候显示服务已经安装,但是还未启动,这时候我们可以打开windows服务窗口找到我们的agent测试服务 ,并右键属性看到如下所示:

    1550150258068

    这时候启动下即可!

  7. 我们访问下我们配置的端口来访问下网站,如下所示:

    1550150594098

    至此我们windows服务方式部署成功!
  8. 最后说明一下newlife.agent是xagent的netcore版本,nfx版本集成在newlife.core中,也就是说,nfx下只需要引用newlife.core即可,对windows兼容性更好。
    newlife.agent独立是为了准备支持linux

总结

今天利用newlife.agent来演示如何优雅的进行asp.net core程序的部署,当然对于控制台程序也是支持的!大伙也可以抽空试一下!最后,我只想说一句.net core的生态真的越来越好了,好用的东西太多太多了!同时这篇文章总共花费了三十八分钟,看来番茄工作法还是很高效的!如果你有兴趣的话可以加入.net core实战项目千人群637326624 跟更多的.netcorer一起交流!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网