美文网首页dotNET
通过TopShelf将OwinSelfHost自宿主打包成服务

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

作者: HapplyFox | 来源:发表于2018-11-21 16:58 被阅读3次

基于当前文章进行代码配置后可开始进行本文章学习
用Owin Host实现脱离IIS跑Web API单元测试

基于上述程序集开始编码

安装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服务,这样就可以保证后台运行。

相关文章

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

    基于当前文章进行代码配置后可开始进行本文章学习用Owin Host实现脱离IIS跑Web API单元测试 基于上述...

  • OwinSelfHost自宿主的使用

    Owin介绍看上篇 链接 OWIN将多种应用框架使用统一的接口来实现各框架之间的适配! 新建控制台项目 新建普通控...

  • 用Owin Host实现脱离IIS跑Web API单元测试

    当前文章阅读前推荐阅读 OwinSelfHost自宿主的使用 文章操作步骤与上述文章结构大致雷同: 第一步 新建控...

  • Topshelf开源跨平台宿主服务框架

    介绍: Topshelf是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一...

  • 如何将SpringBoot 项目打包成 war

    转自:将spring boot 项目打包成 war,在服务器部署1、将pom.xml中打包的方式修改为war wa...

  • 5、持续集成-jenkins

    一:通过jenkins调用shell脚本完成从Gitlab服务器获取代码、打包、部署到web服务器、将web服务器...

  • 手写插件化

    插件化技术也就是说用户只需安装宿主apk,其它业务模块打包成独立的插件apk动态下发,然后通过宿主app加载运行。...

  • 插件化方案

    一、将插件化内容打包成apk,放在宿主APP的assert目录下。二、app启动时,动态加载插件apk的内容: 将...

  • TopShelf

    简单的可以参考这个博客TopShelf官网TopShelf 效果如图:

  • Topshelf 秒建 Windows 服务

    Topshelf 是一个用来部署 基于.NET Framework 开发的服务 的框架。它极大的简化服务创建与部署...

网友评论

    本文标题:通过TopShelf将OwinSelfHost自宿主打包成服务

    本文链接:https://www.haomeiwen.com/subject/vjnqqqtx.html