ITPub博客

首页 > IT职业 > IT生活 > 通过TopShelf将OwinSelfHost自宿主打包成服务

通过TopShelf将OwinSelfHost自宿主打包成服务

IT生活 作者:jerrysun 时间:2021-09-09 10:21:07 0 删除 编辑

基于上述程序集开始编码

安装Nuget包 Topshelf

图片描述

image.png

新建Topshelf 所需的类

Bootstrap.cs 是对Topshelf 发布的windows服务的开始[Start]和结束[Stop]接口所要做的事情

图片描述

image.png

    /// <summary>
    /// OWIN host
    /// </summary>
    public class Bootstrap : ServiceControl
    {        private IDisposable webApp;        public string Address { get; set; }        public bool Start(HostControl hostControl)
        {            try
            {
                webApp = WebApp.Start<Startup>(Address);                return true;
            }            catch (Exception ex)
            {
                Console.WriteLine("Topshelf starting occured errors.", ex);                return false;
            }

        }        public bool Stop(HostControl hostControl)
        {            try
            {
                webApp?.Dispose();                return true;
            }            catch (Exception ex)
            {
                Console.WriteLine($"Topshelf stopping occured errors.", ex);                return false;
            }

        }
    }

Program.cs
项目程序主文件,通过TopShelf将应用打包成windows服务的方法,

    class Program
    {        static void Main(string[] args)
        {
            HostFactory.Run(x =>
            {
                x.RunAsLocalSystem();

                x.SetServiceName("HangfireSettings.Instance.ServiceName");
                x.SetDisplayName("HangfireSettings.Instance.ServiceDisplayName");
                x.SetDescription("HangfireSettings.Instance.ServiceDescription");

                x.Service(() => new Bootstrap { Address = "http://localhost:9005/" });
            });

            Console.Read();
        }
    }

程序运行后,只需要在地址栏输入 http://localhost:9005/,就可以访问网站
输入http://localhost:9005/blogposts/1/comments,可以得到如下图所示内容

图片描述

image.png

图片描述

image.png

上图所示内容就相当于是通过OwinSelfHost自宿主打包后的运行方法,我们不需要新建一个web项目,只需要通过控制台程序,安装OWIN自宿主包,对各内容进行配置后,启动程序,即可通过地址栏访问网络服务请求。
更近一步的是将当前控制台打包成Topshelf服务,这样就可以保证后台运行。



作者:HapplyFox
链接:https://www.jianshu.com/p/066205dbc096


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/151/viewspace-2820774/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-09-29

  • 博文量
    122
  • 访问量
    16191