您的位置:首页 > 编程语言 > C#

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项目概述


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方法中添加如下代码:

这段代码添加一个简单的中间件到OWIN管道,实现为一个接收Microsoft.Owin.IOwinContext实例的功能。当服务器接收到一个HTTP请求时,OWIN管道调用中间件。中间件设置响应的内容类型并将内容写入响应的body中。


运行程序

按F5启动调试。Visual Studio会打开一个链接到http://localhost:port/的浏览器窗口。页面看起来如下所示:




控制台应用程序中自我托管OWIN

从IIS托管转换到自定义进程的自我托管很容易。对于IIS托管,IIS既充当HTTP服务器又充当托管在服务器中的进程。而对于自我托管,应用程序创建进程,然后使用HttpListener作为HTTP服务器。

在Visual Studio中,创建一个控制台应用程序,在程序包管理器控制台中,键入以下命令

将前面添加的Startup类添加到本项目,不需要修改代码。

在Main方法中实现如下代码:

当运行控制台程序时,服务器开始监听http://localhost:5000。如果在浏览器导航到该地址,就会看“Hello world”页面。




添加OWIN诊断

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环境变量信息。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# owin katana