前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过TopShelf将OwinSelfHost自宿主打包成服务

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

作者头像
happlyfox
发布2019-03-14 16:54:06
8840
发布2019-03-14 16:54:06
举报
文章被收录于专栏:技术开源分享技术开源分享

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

基于上述程序集开始编码

安装Nuget包 Topshelf

新建Topshelf 所需的类

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

代码语言:javascript
复制
    /// <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服务的方法,

代码语言:javascript
复制
    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,可以得到如下图所示内容

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基于上述程序集开始编码
    • 安装Nuget包 Topshelf
      • 新建Topshelf 所需的类
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档