OWIN是Open Web Server Interface for .NET
http://owin.org/
Servers and Hosts
Frameworks
Implementations
Out of date or deprecated
新建一个Owin项目
打开VS2015,新建Web应用程序,命名为OwinWeb(名字随意)。

在弹出的“新建ASP.NET项目”窗口中选择“Empty”模板,“为以下项添加文件夹和核心引用”处全不选。点击确定。

创建完后,解决方案如下所示。空的,干净的。

打开NuGet包管理器,

在"浏览"Tab页的输入框中输入owin,回车。在结果中选择“Microsoft.Owin.Host.SystemWeb”,右侧选择安装到的项目,点击安装按钮。

安装过程中会弹出如下窗口,点击确定。从这个窗口中可以看到要安装的程序集,及它的依赖项。本次安装将会向项目中添加如下图所示的三个DLL引用。

安装完成后,打开解决方案资源管理器,可以看到与安装前变化。

按F5,运行,会得到如下提示。正常的,因为还缺少内容,Owin已参与到请求处理,但还没有正确配置。

在解决方案资源管理器中,在项目上右键,添加》类。

命名为Startup,名字必须为此名字(实际可以改的,但如果改为别的名字,就需要更多的配置。这是最少配置下的约定命名)。

在新建的类中添加Configuration方法,注意要添加相应的using


public void Configuration(IAppBuilder app)
{
app.Run(context =>
{
context.Response.ContentType = "text/plain";
return context.Response.WriteAsync("Hello World!");
});
}

好了,再次F5运行,结果如下:

是不是很简单。
==========================================================
下面讲一下Startup另外的添加方法,及使用自定义命名

添加后如下所示

在Configuration方法中添加如下代码:
app.Run(context =>
{
context.Response.ContentType = "text/plain";
return context.Response.WriteAsync("Hello World!");
});
F5运行,页面显示正常。不是说不是Startup的名字的时候必须得有另外的配置才能行吗?这怎么也可以?
看上图命名空间声名的上面一行
[assembly: OwinStartup(typeof(OwinWeb.MyOwinStartup))]
就是这句话起的作用,让Owin找到了入口在哪里。
试试 ,把这行注释掉,再F5运行,看到你期待的页面了吧。^_^
=======================================================
再来换一种方式:
保持[assembly: OwinStartup(typeof(OwinWeb.MyOwinStartup))]的注释,
打开Web.Config文件,添加如下配置:

F5,运行。Ok了吧?
OWIN是Open Web Server Interface for .NET的更多相关文章
- 【译】OWIN: Open Web Server Interface for .NET
主要是使用 OAuth 时,它运行在 OWIN 上,然后又出了若干问题,总之,发现对 IIS.ASP.NET 和 OWIN 理解一塌糊涂. 后面看到 OWIN: Open Web Server Int ...
- Python Web Server Gateway Interface -- WSGI
了解了HTTP协议和HTML文档,我们其实就明白了一个Web应用的本质就是: 浏览器发送一个HTTP请求: 服务器收到请求,生成一个HTML文档: 服务器把HTML文档作为HTTP响应的Body发送给 ...
- Notes on PEP333 (Python Web Server Gateway Interface)
This note is about PEP3333- Python Web Server Gateway Interface. Refer to (Source: http://legacy.pyt ...
- 【Python Programe】WSGI (Web Server Gateway Interface)
Part1: What is a Web server? 一个位于物理服务器上的网络服务器(服务器里的服务器),等待客户端去发送request,当服务器接收到request,就会生成一个respons ...
- a simple and universal interface between web servers and web applications or frameworks: the Python Web Server Gateway Interface (WSGI).
WSGI is the Web Server Gateway Interface. It is a specification that describes how a web server comm ...
- Python的WSGI(Web Server Gateway Interface)服务器
Python的WSGI(Web Server Gateway Interface)服务器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- Setting up Django and your web server with uWSGI and nginx
https://uwsgi.readthedocs.io/en/latest/tutorials/Django_and_nginx.html Setting up Django and your we ...
- [r]Setting up Django and your web server with uWSGI and nginx
Setting up Django and your web server with uWSGI and nginx This tutorial is aimed at the Django user ...
- Web Server PROPFIND Method internal IP Discosure
Title:Web Server PROPFIND Method internal IP Discosure --2012-11-09 09:47 Nessus扫描出来一个安全缺陷,Web Serv ...
随机推荐
- ASP.NET-Request对象
前言:Request对象主要用于获取来自客户端的数据,如用户填入表单的数据.保存在客户端的Cookie等. 一.Request对象概述 1.主要属性 ApplicationPath 获取服务器上a ...
- 零基础学python-5.2 数字表达式操作符
表达式是处理数字最主要的工具 a=1#常量 a=a+1#表达式 操作符 操作符 描写叙述 yield 生成 器函数发送协议 lambda args:expression 生成匿名函数 x if y e ...
- Navgationcontroller 的pop
1.NavgationController pop 回来不进入viewdisload,利用原来载入的视图 不是啊,他pop回来的时候不进viewdidload 直接进去viewwillApper这种方 ...
- 晋IT分享成长沙龙集锦
第一期"晋IT"分享成长沙龙于2014年7月19日圆满结束.下面是相关内容整理和第二期预告. 各位伙伴认真的介绍自己,介绍自己的业务,分析自己眼下存在的问题,大家一起探讨,真诚出谋 ...
- iOS-MBProgressHUD使用
在码代码过程中,我们经常用到MBProgressHUD,但我很少实例化使用,一般都是偷个懒直接显示隐藏,这里贴上详解,以便日后有样式要求时使用. 1,MBProgressHUD常用属性和用法Demo ...
- POJ 2190 模拟
按照题意模拟就好- 注意"X"只能出现在最后一位... // by SiriusRen #include <cstdio> using namespace std; c ...
- 访问Storm ui界面,出现org.apache.storm.utils.NimbusLeaderNotFoundException: Could not find leader nimbus from seed hosts ["master" "slave1"]. Did you specify a valid list of nimbus hosts for confi的问题解决(图文详解)
不多说,直接上干货! 前期博客 apache-storm-1.0.2.tar.gz的集群搭建(3节点)(图文详解)(非HA和HA) 问题详情 org.apache.storm.utils.Nimbu ...
- 编程语言与Python学习(一)
1.1 编程与编程语言 1.1.1 编程语言 计算机的发明,是为了用机器解放人力,而编程的目的则是将人类的思想流程按照某种能够被计算机识别的表达方式传递给计算机,从而达到让计算机能够像人脑一样自动执行 ...
- ARM的六大类指令集---LDR、LDRB、LDRH、LDM、STR、STRB、STRH、STM
http://blog.csdn.net/u013477200/article/details/50723555
- Monitor (synchronization)条件变量-安全对象
In concurrent programming, a monitor is a synchronization construct that allows threads to have both ...