码迷,mamicode.com
首页 > Windows程序 > 详细

【Owin 学习系列】1. 第一个 Owin 程序

时间:2017-07-28 14:12:58      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:start   创建   task   namespace   list   ring   soft   listener   ora   

 

IIS 中的 Owin

在 IIS 里面部署 Owin,既能得到 Owin 管道模型的灵活性和模块特性,也能很好地利用 IIS 成熟的配置,Owin 程序将会跑在 ASP.NET request 的管道中。

首先建一个空的 Web 项目

技术分享

技术分享

添加 Nuget 包 Microsoft.Owin.Host.SystemWeb

技术分享

添加一个 Startup 类

技术分享

替换 Startup.cs 的代码

using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(OwinDemo.Startup))]

namespace OwinDemo
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
            app.Run(context=> 
            {
                context.Response.ContentType = "text/plain";
                return context.Response.WriteAsync("Hello, world.");
            });
        }
    }
}

F5 运行查看结果

技术分享

 

控制台 Self-Host OWIN

在 Self - Host 程序中,你的程序将会使用 HttpListener 创建一个进程来当作 Http Server 。

首先添加一个控制台程序

技术分享

添加 NuGet 包 Microsoft.Owin.SelfHost

技术分享

添加一个 Owin Startup.cs 文件

技术分享

替换 Startup.cs 文件内容

using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(OwinConsoleDemo.Startup))]

namespace OwinConsoleDemo
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
            app.Run(context=> 
            {
                context.Response.ContentType = "text/plain";
                return context.Response.WriteAsync("Hello , this is console appliaction from self owin.");
            });
        }
    }
}

修改控制台程序 Main 函数代码

static void Main(string[] args)
    {
        using (Microsoft.Owin.Hosting.WebApp.Start<Startup>("http://localhost:9000"))
        {
            Console.WriteLine("Press [enter] to quit...");
            Console.ReadLine();
        }
    }

F5 运行,然后浏览器访问 http://localhost:9000

技术分享

 

添加 Owin Diagnostics

Microsoft.Owin.Diagnostics 包包含了一个能捕获未处理的异常的中间件,并且能把错误详情显示在一个 Html 页面中。

首先在 Nuget 包里安装 Microsoft.Owin.Diagnostics

技术分享

然后替换 Startup.cs 代码

using System;
using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(OwinDemo.Startup))]

namespace OwinDemo
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.UseErrorPage();

            // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
            app.Run(context=> 
            {
                if((context.Request.Path.ToString() == "/fail"))
                {
                    throw new Exception("This is Owin Diagnostics Test.");
                }

                context.Response.ContentType = "text/plain";
                return context.Response.WriteAsync("Hello, world.");
            });
        }
    }
}

F5 运行,地址栏输入 http://localhost:56764/fail ,就可以在错误页面看到详细的错误信息

技术分享

 

源代码链接:

链接: http://pan.baidu.com/s/1c2w7Kuk 密码: s6h6

 

参考地址:

https://docs.microsoft.com/zh-cn/aspnet/aspnet/overview/owin-and-katana/getting-started-with-owin-and-katana

【Owin 学习系列】1. 第一个 Owin 程序

标签:start   创建   task   namespace   list   ring   soft   listener   ora   

原文地址:http://www.cnblogs.com/Soulless/p/7249313.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!