OWIN和Katana入门
2016-06-07 22:41
399 查看
------转载:http://www.nmtree.net/2014/06/13/getting-started-with-owin-and-katana.html
Open Web Interface for .NET (OWIN)定义了.NET
web服务器和web应用程序间的抽象。OWIN通过将web服务器从应用程序解耦,使得为.NET web开发创建中间件和移植web应用程序到其他托管——比如,Window服务或其他进程的自我托管——变得更加容易。
OWIN是一个社区所有的规范,而非实现。Katana项目是由微软开发的开源OWIN组件集合。关于OWIN和Katana的介绍,请参阅Katana项目概述。
本节,我们将OWIN托管在IIS中。使用此选项,OWIN应用程序运行在ASP.NET请求管道中。
首先,新建一个新的ASP.NET Web Application项目。
在新建ASP.NET项目对话框中,选择Empty模板。
从工具菜单,选择NuGet程序包管理器,然后选择程序包管理器控制台。在程序包管理器控制台窗口中,键入下面的命令:
接下来,添加一个OWIN startup类。在解决方案资源管理器中,右击项目,选择添加,然后选择新建项。在新建项对话框中,选择Owin Startup类。关于配置startup类的更多信息,参与OWIN启动类检测。
在Startup.Configuration方法中添加如下代码:
这段代码添加一个简单的中间件到OWIN管道,实现为一个接收Microsoft.Owin.IOwinContext实例的功能。当服务器接收到一个HTTP请求时,OWIN管道调用中间件。中间件设置响应的内容类型并将内容写入响应的body中。
按F5启动调试。Visual Studio会打开一个链接到http://localhost:port/的浏览器窗口。页面看起来如下所示:
从IIS托管转换到自定义进程的自我托管很容易。对于IIS托管,IIS既充当HTTP服务器又充当托管在服务器中的进程。而对于自我托管,应用程序创建进程,然后使用HttpListener作为HTTP服务器。
在Visual Studio中,创建一个控制台应用程序,在程序包管理器控制台中,键入以下命令
将前面添加的Startup类添加到本项目,不需要修改代码。
在Main方法中实现如下代码:
当运行控制台程序时,服务器开始监听http://localhost:5000。如果在浏览器导航到该地址,就会看“Hello world”页面。
Microsoft.Owin.Diagnostics程序包包含捕获未处理异常并显示一个带有详细错误的HTML页面的中间件。这个页面的功能类似于ASP.NET的错误页面(有时被称为yellow screen of death YSOD)。类似于YSOD,Katana错误页在开发阶段很有用,但是在生产环境下禁用掉是一个好的实践。
在程序包管理器控制台键入下面的命令安装Diagnostics程序包:
如下修改Startup.Configuration方法
使用CTRL+F5不调试运行程序。程序运行结果和之前一样,但是当导航到http://localhost:62222/fail时程序就会抛出异常。错误页中间件捕获到异常,并显示一个带有错误信息的HTML页。在错误页中,可以点击tab查看stack,query string,cookies,request header和OWIN环境变量信息。
Open Web Interface for .NET (OWIN)定义了.NET
web服务器和web应用程序间的抽象。OWIN通过将web服务器从应用程序解耦,使得为.NET web开发创建中间件和移植web应用程序到其他托管——比如,Window服务或其他进程的自我托管——变得更加容易。
OWIN是一个社区所有的规范,而非实现。Katana项目是由微软开发的开源OWIN组件集合。关于OWIN和Katana的介绍,请参阅Katana项目概述。
IIS托管OWIN
本节,我们将OWIN托管在IIS中。使用此选项,OWIN应用程序运行在ASP.NET请求管道中。首先,新建一个新的ASP.NET Web Application项目。
在新建ASP.NET项目对话框中,选择Empty模板。
添加NuGet程序包
从工具菜单,选择NuGet程序包管理器,然后选择程序包管理器控制台。在程序包管理器控制台窗口中,键入下面的命令:
添加Startup类
接下来,添加一个OWIN startup类。在解决方案资源管理器中,右击项目,选择添加,然后选择新建项。在新建项对话框中,选择Owin Startup类。关于配置startup类的更多信息,参与OWIN启动类检测。在Startup.Configuration方法中添加如下代码:
运行程序
按F5启动调试。Visual Studio会打开一个链接到http://localhost:port/的浏览器窗口。页面看起来如下所示:
控制台应用程序中自我托管OWIN
从IIS托管转换到自定义进程的自我托管很容易。对于IIS托管,IIS既充当HTTP服务器又充当托管在服务器中的进程。而对于自我托管,应用程序创建进程,然后使用HttpListener作为HTTP服务器。在Visual Studio中,创建一个控制台应用程序,在程序包管理器控制台中,键入以下命令
在Main方法中实现如下代码:
添加OWIN诊断
Microsoft.Owin.Diagnostics程序包包含捕获未处理异常并显示一个带有详细错误的HTML页面的中间件。这个页面的功能类似于ASP.NET的错误页面(有时被称为yellow screen of death YSOD)。类似于YSOD,Katana错误页在开发阶段很有用,但是在生产环境下禁用掉是一个好的实践。在程序包管理器控制台键入下面的命令安装Diagnostics程序包:
相关文章推荐
- c#调用COM组件
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现给图片加水印的方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#中的delegate委托类型基本学习教程
- C#实现子窗体与父窗体通信方法实例总结
- C#通用邮件发送类分享
- 举例讲解C#中自动实现的属性
- C#中this的用法集锦
- C#数据结构之顺序表(SeqList)实例详解
- C#.NET获取拨号连接的宽带连接方法
- C#异步绑定数据实现方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- C#比较二个数组并找出相同或不同元素的方法