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

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

概述上一篇文章中我给大家讲述了五种部署ASP.NET Core网站的方法,其中有一种方式是通过Windows服务来进行部署,这样既可以做到开启自启动,又不会因为iis的反向代理而损失部分性能。但是美中不足

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

作者:依乐祝
原文链接:https://www.cnblogs.com/yilezhu/p/10380887.html

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

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

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

Install-Package Newlife.CoreInstall-Package Newlife.Agent

安装后如下所示:

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

namespace TestAgent
{
public class Program
{
protected static string[] _args;
public static voID Main(string[] args)
{
_args = args;
TestAgentServices.ServiceMain();

    }    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>        WebHost.CreateDefaultBuilder(args)        .UseUrls("http://*:8008")            .UseStartup<Startup>();    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](https://img2018.cnblogs.com/blog/1377250/201902/1377250-20190214213547189-1427828543.png)如上所示:显示了当前服务的名称,描述以及状态,黄色字体部分列出了对应的 *** 作命令,我们只需要输入对应的数据即可进行 *** 作6. 我们这里直接输入数字`2` 来进行安装服务,如下所示:![1550150103441](https://img2018.cnblogs.com/blog/1377250/201902/1377250-20190214213546919-18417902.png) 这时候显示服务已经安装,但是还未启动,这时候我们可以打开windows服务窗口找到我们的`Agent测试服务` ,并右键属性看到如下所示:![1550150258068](https://img2018.cnblogs.com/blog/1377250/201902/1377250-20190214213545911-1830145341.png)这时候启动下即可!7. 我们访问下我们配置的端口来访问下网站,如下所示:![1550150594098](https://img2018.cnblogs.com/blog/1377250/201902/1377250-20190214213544958-2068172100.png)至此我们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一起交流!
总结

以上是内存溢出为你收集整理的如何优雅的利用Windows服务来部署ASP.NET Core程序全部内容,希望文章能够帮你解决如何优雅的利用Windows服务来部署ASP.NET Core程序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1214864.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存