专栏首页码农分享OwinSelfHost自宿主的使用

OwinSelfHost自宿主的使用

Owin介绍看上篇 链接

OWIN将多种应用框架使用统一的接口来实现各框架之间的适配!

新建控制台项目

image.png

新建普通控制台项目,框架类型最好选择.NET Framework4.6,为了下一篇的内容做铺垫。

添加Nuget包

安装OWIN自宿主的包包 1、通过程序包管理器控制台

Install-Package Microsoft.AspNet.WebApi.OwinSelfHost

2、通过Nuget包可视化工具

新建Startup类

    /// <summary>
    /// OWIN应用程序入口
    /// </summary>
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            HttpConfiguration config = new HttpConfiguration();

            //配置路由
            config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
            );
            //将默认xml返回数据格式改为json
            config.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
            config.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("datatype", "json", "application/json"));

            app.UseWebApi(config);
            // 有关如何配置应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=316888
        }
    }

添加几个测试用的Controller

其实就是webapi或者webmvc里的controller,这里以webapi为例说明

   public class HomeController : ApiController
    {
        public object Get()
        {
            return new { code = 1, msg = "OK HomeController" };
        }
    }
    public class VideoController : ApiController
    {
        public object Get()
        {
            return new { code = 2, msg = "OK VideoController" };
        }
    }

主程序入口启动Owin

    string baseAddress = "http://192.168.2.71:9000/";
     Microsoft.Owin.Hosting.WebApp.Start<Startup>(url: baseAddress);
     Console.WriteLine("程序已启动,按任意键退出");
     Console.ReadLine();

查看结果

浏览器,访问一下URL即可看到时结果了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C#正则表达式判断字符串中是否有数…

                    int count = Regex.Matches(test, @"\d").Count;

    Dabelv
  • JNI编程demo

    每隔一秒产生一个随机数,就设定为压力值,然后在ProgressBar上显示出来。一般来讲用java也能做,但这次用jni来做 先定义一个操作类

    刘晓杰
  • C/C++常见错误汇总

    出错原因: main.cpp中没有找到对应的函数名声明,没有在.cpp引用包含该函数名的头文件.h。 解决方法: 引入对应头文件。

    城市中的游牧民族
  • 团队效率工具: 代码格式化之Clang-format

    平时团队进行合作的时候需要注意代码的格式,虽然很难统一每个人的编码风格,但是通过工具能够很好的管理代码格式。这里介绍下clang-format,它是基于clan...

    程序手艺人
  • 编程小知识之 Dispose 模式

    之前对 C# 中的 Dispose 模式只有些模糊印象,近来又了解了一些相关知识,在此简单做些记录~

    用户2615200
  • .NET面试题解析(04)-类型、方法与继承

    做技术是清苦的。一个人,一台机器,相对无言,代码纷飞,bug无情。须梦里挑灯,冥思苦想,肝血暗耗,板凳坐穿。世界繁华竞逐,而你独钓寒江,看尽千山暮雪,听彻寒更雨...

    莫问今朝
  • C++函数模板与分离编译模式

    一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件连接起来形成单一的可执行文件的过程称为分离编译模式。

    Dabelv
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理

    本文内容涉及到基本SQL语法,数据的基本存储原理,数据库一些概念、数据优化等。抱砖引玉,权当一个综合复习!

    莫问今朝
  • 【SQL】小心在循环中声明变量——浅析SQL变量作用域

    如果你认为这个语句跑起来没问题,那你值得看下去,会避免以后踩到【SQL变量作用域】的坑。

    AhDung
  • VS 2013 打包程序教程

    如果你只是想要在他人的机子上运行你的程序而不想安装,有一种简单的方法,只要使用本教程的“步骤—3.生成Release 文件夹”即可。但是有一点需要注意,如果你在...

    用户3148308

扫码关注云+社区

领取腾讯云代金券