前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何优雅的利用Windows服务来部署ASP.NET Core程序

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

作者头像
依乐祝
发布2019-03-04 17:06:59
7150
发布2019-03-04 17:06:59
举报
文章被收录于专栏:依乐祝依乐祝

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

作者:依乐祝 原文链接:https://cloud.tencent.com/developer/article/1398182

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

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

如下所示需要添加两个Nuget包,这就是大名鼎鼎的NewLife.Core以及NewLife.Agent了

Install-Package NewLife.Core Install-Package NewLife.Agent

安装后如下所示:

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

代码语言:javascript
复制
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 方法中.

Mian方法中调用TestAgentServices.ServiceMain(); 来引导进入我们上面新建的服务类。

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

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

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

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

这时候启动下即可!

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

至此我们windows服务方式部署成功!

最后说明一下NewLife.Agent是XAgent的netcore版本,nfx版本集成在NewLife.Core中,也就是说,nfx下只需要引用NewLife.Core即可,对Windows兼容性更好。

NewLife.Agent独立是为了准备支持Linux

总结

今天利用NewLife.Agent来演示如何优雅的进行ASP.NET Core程序的部署,当然对于控制台程序也是支持的!大伙也可以抽空试一下!最后,我只想说一句.NET Core的生态真的越来越好了,好用的东西太多太多了!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-02-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 总结
相关产品与服务
测试服务
测试服务 WeTest 包括标准兼容测试、专家兼容测试、手游安全测试、远程调试等多款产品,服务于海量腾讯精品游戏,涵盖兼容测试、压力测试、性能测试、安全测试、远程调试等多个方向,立体化安全防护体系,保卫您的信息安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档