学习ASP.NET MVC框架揭秘笔记-IIS/ASP.NET管道(二)

IIS7.0与ASP.NET

IIS7.0在请求的监听和分发机制上又进行了革新性的改进,主要体现在引入Window进程激活服务(Windows Process Activation Service,WAS)分流了原来(IIS6.0)W3SVC承载的部分功能。IIS6.0中W3SVC主要承载着如下三大功能。

1.HTTP请求接收:接收HTTP.SYS监听到的HTTP请求。

2.配置管理:从元数据库(metabase)中加载配置信息对相关组件进行配置。

3.进程管理:创建、回收、监控工作进程。

IIS7.0将后两组功能实现到了WAS中,但接收HTTP请求的任务依然落在W3SVC头上。WAS的引入为IIS7.0提供了对非HTTP协议的支持,它通过监听适配器接口抽象出针对不同协议的监听器。具体来说,除了专门用于监听HTTP请求的HTTP.SYS之外,WAS利用TCP监听器、命名管道监听器和MSMQ监听器提供基于TCP、命名管道和MSMQ传输协议的监听支持。

与此3种监听器相应的是3种监听适配器,他们提供监听器与WAS中的监听适配器接口之间的适配。这三种非HTTP监听器和监听适配器定义在程序集SMSvcHost.exe中。这三种监听器/监听适配器是为WCF设计的。

无论是从W3SVC接收到的HTTP请求,还是通过WCF提供的监听适配器接收到的针对其他传输协议的请求,最终都会被传递到WAS。如果相应的工作进程(针对单个应用进程池)尚未创建,则WAS会创建创建工作进程。WAS在进行请求处理过程中通过内置的配置管理模块加载相关的配置信息,并对相关的组件进行配置。IIS7.0大都将配置信息存放于XML形式的配置文件中,基本的配置存放在applicationHost.config。

1.3.4ASP.NET集成

从上面的介绍我们发现,在IIS5.x和IIS6.0中,IIS与ASP.NET是两个相互独立的管道。在各自的管辖范围内,他们各自具有自己的一套机制对HTTP请求进行处理。两个管道通过ISAPI实现“连通”,IIS是第一道屏障,当对HTTP请求进行必要的前期处理后,IIS通过ISAPI将请求分发给ASP.NET管道。当ASP.NET在自身管道范围内完成对HTTP请求的处理时,处理后的结果再返回到IIS,IIS对其进行后期处理后生成HTTP回复对请求予以响应。

从另一个角度讲,IIS运行在非托管的环境中,而ASP.NET管道则是托管的,所以说ISAPI还是连接非托管环境和托管环境的纽带。

把两个管道进行隔离至少带来了下面的一些局限与不足。

1.相同操作的重复执行。

2.动态文件与静态文件处理的不一致。

3.IIS难以扩展。

为此在IIS7.0中实现了两者的集成,通过集成可以获得如下的好处。

1.允许通过本地代码和托管代码两种方式定义IIS Module,这些IISModule注册到IIS中形成一个通用的请求处理管道。由这些IISModule组成的这个管道能够处理所有的请求,不论请求基于怎样的资源类型。

2.将ASP.NET提供的一些强大的功能应用到原来难以企及的地方。

3.采用相同的方式去实现、配置、检测和支持一些服务器特性。

在下一章我们详细讲解一下ASP.NET通道。

时间: 2024-08-26 17:01:06

学习ASP.NET MVC框架揭秘笔记-IIS/ASP.NET管道(二)的相关文章

学习ASP.NET MVC框架揭秘笔记-IIS/ASP.NET管道(一)

IIS/ASP.NET管道 ASP.NET MVC就是建立在ASP.NET平台基础上基于MVC模式的Web应用框架,深入理解ASP.NET MVC的前提是对ASP.NET管道式设计有深刻的认识.由于ASP.NET Web应用大都寄宿于IIS上,接下来会介绍3个主要的IIS版本对各自Web请求的处理方式. 1.3.1 IIS 5.x与ASP.NET IIS 5.x运行在进程InetInfo.exe中,该进程寄宿着一个名为World WideWeb Publishing Service(简称W3SV

学习ASP.NET MVC框架揭秘笔记-IIS/ASP.NET管道(三)

ASP.NET管道 以IIS6.0为例,它在工作进程w3wp.exe中会利用aspnet_isapi.dll加载.NET运行时(如果.NET运行时尚未加载).IIS6.0引入了应用程序进程池的概念,一个工作进程对应着一个应用程序池.一个应用程序进程池可以承载一个或者多个Web应用,每个Web应用映射到一个IIS虚拟目录.与IIS5.x一样,每一个Web应用运行在各自的应用程序域中. 如果HTTP.SYS接收到的HTTP请求是对该Web应用的第一次访问,在成功加载运行时后,IIS会通过AppDom

学习ASP.NET MVC框架揭秘笔记目录

学习ASP.NET MVC框架揭秘笔记目录 第一章     ASP.NET+MVC 1.1传统的MVC模式 持续更新中,,,,

学习ASP.NET MVC框架揭秘笔记-实例演示:SC模式的应用

实例演示:SC模式的应用 为了对SC模式下的MVP,尤其是该模式下的View和Presenter之间的交互方式有一个深刻的认识,我们现在来做一个实例演示.我们采用员工查询的场景,用ASP.NET Web Forms来建立这个简单的应用. 我们先来定义员工的数据类型,Employee来表示一个员工,有5个属性:ID.姓名.性别.出生日期和部门. public class Employee { public string Id { get; private set; } public string

学习ASP.NET MVC框架揭秘笔记-MVP

1.2.1                      MVP MVP是一种UI架构模式,适用于基于事件驱动的应用框架.MVP中的M和V分别对应MVC的Model和View,而P(Presenter)代替了Controller. 在MVP模式中,能够与Model直接进行交互的仅限于Presenter,View只能通过Presenter间接地调用Model.Model的独立性在这里得到真正的体现,他不仅仅与可视化元素的呈现无关,与UI处理逻辑(Presenter)也无关. MVP不仅仅避免了View

学习ASP.NET MVC框架揭秘笔记-传统MVC模式

1.1传统MVC模式 对于大部分面向最终用户的应用来说,他们都需要具有一个与用户进行交互的可视化UI界面,我们将这个UI称为视图(View).在早期,我们倾向于将所有与UI相关的操作糅合在一起,这些操作包括UI界面的呈现.用户交互操作的捕捉与响应.业务流程的执行及对数据的存取等,我们将这种设计模式称为自治视图(Autonomuous View  ,  AV). 1.1.1  自治视图 1.1.2  什么是MVC模式

学习ASP.NET MVC框架揭秘笔记-自治视图

1.1.1自治视图 一个典型的人机交互应用具有3个主要的关注点,既数据在可视化界面上的呈现.UI处理逻辑(用于处理用户交互式操作的逻辑)和业务逻辑.自治视图模式将三者混合在一起,势必会带来如下一些问题. 1.重用性.业务逻辑是与UI无关的,应该最大限度地被重用,但是若将业务逻辑定义在自治视图中相当于使他完全与视图本身绑定在一起.除此之外,如果我们能够将UI的行为抽象出来,基于抽象化UI的处理逻辑也是可以被共享的,但是定义在自治视图中的UI处理逻辑也完全丧失了重用的可能. 2.稳定性.业务逻辑具有

学习ASP.NET MVC框架揭秘笔记-什么是MVC模式

1.1.2什么是MVC模式 MVC的创建者是Trygve M.H.Reenskau,他是挪威的计算机专家,同时也是奥斯陆大学的名誉教授.MVC是他在1979年提出的一种主要针对GUI应用的软件架构模式. MVC体现了"关注点分离"这一基本的设计方针,他将一个人机交互应用设计的功能分为Model.Controller和View三部分,他们各自具有如下的职责. 1.Model是对应用状态和业务逻辑的封装,我们可以将它理解为同时包含数据和行为的领域模型.Model接受Controller的请

学习ASP.NET MVC框架揭秘笔记-PV与SC

1.                                   PV与SC 解决View难以测试最好的办法就是让他无须测试.如果View不需要测试,其先决条件就是让它尽可能不涉及UI处理逻辑,这就是PV模式的目的所在. 如果我们纯粹的采用PV模式来设计View意味着我们需要将View中的UI元素通过属性的形式暴露出来.具体来说,当我们为View定义接口的时候,需要定义基于UI元素的属性使Presenter可以对View进行细粒度操作,但这并不意味着我们直接将View上的控件暴露出来.