IIS 工作原理之非托管代码旅程(一)
- IIS6改变
IIS6可以为每个不同的虚拟目录创建不同的程序池,这样缩小了IIS的Application Pool的颗粒度,不同的虚拟目录之间是互不影响的。
- IIS6(和IIS7经典模式)与IIS7集成模式最大的区别
IIS6(和IIS7经典模式)是通过aspnet_isapi.dll(internet server application programming interface )即IIS应用程序接口来处理。
而IIS7集成模式之后,不需要通过aspnet_isapi.dll

- 名词解释:
Http.sys:负责侦听(Listen)来自于外部的Http请求,根据请求的Url,并通过WAS监视程序获取applicationHost.Config,找到相应的应用程序池(Application Pool),当Http请求完成以后,它又负责将处理结果发送出去。
http.sys内部建立一个缓冲区,将最近的请求处理结果保存起来。
ApplicationPool:应用程序池,所有站点的处理都会发生在这里进程里,包括ISAPI dll的执行,当应用程序池接受到http请求后,交由程序池中运行的woker process:w3wp.exe(工作进程)来处理接下来的Http请求。
Worker Process:当工作进程接受到请求后,首先根据后缀名加载ISAPI拓展(如:aspx对应的映射是aspnet_isapi.dll),工作进程加载aspnet_isapi.dll后,由aspnet_isapi.dll负责加载Asp.net的运行环境CLR。ISAPI拓展是非托管代码和托管代码之间的桥梁。
WAS(Web Admin Service):这是一个监控程序,它一方面监控applicationHost.config,另一方面也负责监控应用程序池(Application Pool)中的工作者进程的工作状态,必要时它会关闭一个老的工作进程并创建一个新的取而代之。
- IIS非托管旅程地图

1、当客户端浏览器开始 HTTP 请求一个WEB 服务器的资源时,HTTP.sys 拦截到这个请求。
2、HTTP.sys 联系 WAS服务 获取配置信息。
3、WAS 向配置存储中心(applicationHost.config)请求配置信息。
4、WWW 服务接收到配置信息,配置信息指类似应用程序池配置信息,站点配置信息等等。
5、WWW 服务使用配置信息去配置 HTTP.sys 处理策略。
6、WAS为请求创建一个进程(如果不存在的话)。
7、工作者进程处理请求并对HTTP.sys做出响应。
8、客户端接受到处理结果信息。
参考:http://www.cnblogs.com/fengzheng/p/3668283.html
IIS 工作原理之非托管代码旅程(一)的更多相关文章
- 学习iis工作原理
文章:IIs工作原理 文章:Asp.Net 构架(Http Handler 介绍) - Part.2
- ASP.NET和IIS工作原理
图为iis6.0运行asp.net的原理. browser向iis发送HTTP请求,HTTP.SYS将其分发给W3SVC(World Wide Web Publishing Service),后者解析 ...
- mvc和iis工作原理
学习IIS & MVC的运行原理 我一直疑惑于以下问题,从客户端发出一个请求,请求到达服务器端是怎样跟iis衔接起来的,而iis又是怎样读取我发布的代码的,并返回服务器上的文件.这其中是怎样的 ...
- IIs工作原理
http://www.cnblogs.com/szhy222/archive/2008/07/14/1242576.html 问题: HTTP.SYS 的内置驱动程序 IIS 工作者进程
- IIS站点工作原理与ASP.NET工作原理
IIS站点工作原理与ASP.NET工作原理 一.IIS IIS 7.0工作原理图 两种模式: 1.用户模式(User Mode)(运行用户的程序代码.限制在特定的范围内活动.有些操作必须要受到Ker ...
- IIS执行原理
IIS执行原理 服务器的监听(IIS6.0+版本) 当请求到达服务器时,请求最终会到达TCPIP.SYS驱动程序,TCPIP.SYS将请求转发给HTTP.SYS网络驱动程序的请求队列中(可以理解为 ...
- HashMap的工作原理
HashMap的工作原理 HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间 ...
- 轻松搞懂WebService工作原理
用更简单的方式给大家谈谈WebService,让你更快更容易理解,希望对初学者有所帮助. WebService是基于网络的.分布式的模块化组件. 我们直接来看WebService的一个简易工作流程: ...
- 理解 HTTPS 的工作原理
目标读者:理解HTTP协议,对称和非对称加密,想要了解HTTPS协议的工作原理. 读完本文,你能明白 什么是HTTPS,TLS(SSL),TLS和HTTPS是什么关系? 什么是证书和数字签名,它们是如 ...
随机推荐
- 关于img 403 forbidden的一些思考
网页中经常需要显示图片给用户看,对网站本身来说有的图片是从本地图片服务器来的,但是一旦数量多了以后,磁盘空间又是一个问题. 所以有时就希望显示其他网站的Image,直接把其他网站的图片显示在我的网站上 ...
- Abot爬虫和visjs
1. 引言 最近接触Abot爬虫也有几天时间了,闲来无事打算从IMDB网站上爬取一些电影数据玩玩.正好美国队长3正在热映,打算爬取漫威近几年的电影并用vis这个JS库呈现下漫威宇宙的相关电影. Abo ...
- Android LayoutParams简介
LayoutParams是子控件控制自己在父控件中布局的一个类. 不同布局都有相对的LayoutParams,最简单的LinearLayout.LayoutParams类可以设置布局的宽高. 我在写一 ...
- 【转】appStore上传苹果应用程序软件发布流程
转载地址:http://blog.sina.com.cn/s/blog_68661bd801019uzd.html 首先确定帐号是否能发布, https://developer.apple.com/a ...
- YTU 3023: 树的遍历
原文链接:https://www.dreamwings.cn/ytu3023/2617.html 3023: 树的遍历 时间限制: 1 Sec 内存限制: 128 MB 提交: 3 解决: 2 题 ...
- js中==, !==, === ,!=的区别
在讨论比较符的时候我们先要来讨论哈js的类型,这样有助于我们从本质上了解原理. 下面是我找的资料加上个人的总结: js中有5种数据类型:Undefined.Null.Boolean.Number和St ...
- js中的什么时候需要用new来实例化?
有人说js中函数和类就是一个概念,请问:1 为什么我们在大多数情况下没有用new来实例化一个类(函数),如下 JavaScript code 1 2 3 4 5 6 7 <script> ...
- [问题2014A06] 复旦高等代数 I(14级)每周一题(第八教学周)
[问题2014A06] 若 \(n\) 阶实方阵 \(A\) 满足 \(AA'=I_n\), 则称为正交矩阵. 证明: 不存在 \(n\) 阶正交矩阵 \(A,B\) 满足 \(A^2=cAB+B^ ...
- 简易servlet计算器
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- 关于JS中apply方法的基本理解
最近研究OpenLayers源码时,发现其中使用了比较多的apply方法,对其也是很不明白.于是上网经过多方面了解以及自己细细体会后,终于算是基本明白是其干什么的了,这里分享下.apply方法的造型是 ...