框架系列~OwinSelfHost自宿主的使用


在進入mvc5之后,OWIN變更很主推,很熱,關於OWIN的文章也就出來了,下面閱讀了dudu和一些園友的文章,自己也做了一個SelfHost的程序,測試了一下,感覺還是比較有Core的風格,可能也是面向多平台部署考慮的吧!

OWIN的英文全稱是Open Web Interface for .NET。

如果僅從名稱上解析,可以得出這樣的信息:OWIN是針對.NET平台的開放Web接口。

那Web接口是誰和誰之間的接口呢?是Web應用程序與Web服務器之間的接口,OWIN就是.NET Web應用程序與Web服務器之間的接口。

大叔喜歡的一句話:OWIN將多種應用框架使用統一的接口來實現各框架之間的適配!

下面是WEB測試DEMO的一段代碼,它可以添加多種登陸的策略

DUDU文章:http://www.cnblogs.com/dudu/p/what-is-owin.html

安裝OWIN自宿主的包包

Install-Package Microsoft.AspNet.WebApi.OwinSelfHost

添加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" };
        }
    }

添加主程序的入口,在入口中我們將添加startup的注入點,讓Owin為我們啟動這個startup!

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

下面我們打開瀏覽器,訪問一下URL即可看到時結果了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM