IIS理解
WEB开发基础
1IIS原理
IIS的本质其实就是一个sorket的服务器,浏览器就是一个sorket的客户端,浏览器发送请求信息给IIS,IIS返回信息给浏览器显示,就这么简单。
1http.sys,这个是上个IIS6里的一个模块,主要作用是用来接受浏览器发送过来的请求。用要用一个队列来管理发送过来的请求。如果请求的是.net资源,它就将激活CLR运行时(w3wp.exe)。否则直接返回静态资源(HTML,图片等)。IIS5中没有这个模块,是处理激活aspnet_wp.exe
2 ISAPI扩展器。
ISAPI与aspnet_isapi.dll的关系,ISAPI是IIS的一个扩展接口(GetExtensionVersion,HttpExtensionProc处理后的数据写回客户端,TerminateExtension),而已aspnet_isapi.dll则是对isapi扩展的一个实现。当一个asp.net的资源请到w3wp.exe中,会先经过aspnet_isapi.dll。再到CLR运行环境。它是接收和分派对各种asp.net资源请求的控制中心。它通过命名管道将请求转发给asp.net所在的辅助进程(w3wp.exe)。
3 ISAPI过虑器。
ISAPI过虑器也是ISAPI的一种扩展,aspnet_filter.dll只不过扩展的接口方法不一样,它主要是对一些特定的方法去扩展,主要是:GetFilterVersion,Httpfilterproc过虑请求等。功能类似httpmodule,所有的请求信息对要经过它。
4 W3WP.exe
它是一个进程,每一个应用程序池都要创建一个这样的进程来处理.net资源请求的,即.net的运行环境。每个w3wp.exe中都包括一个aspnet_isapi.dll。
5 IIS5与IIS6与IIS7的关系。
IIS5请求进入到进程inetinfo.exe,inetinfo.exe的aspnet_isapi开始工作,aspnet_isapi用管道与aspnet_wp.exe通信,激活aspnet_wp.exe中的工作者线程处理请求。服务只有一个aspnet_wp.exe进程不同网站运行在不同的域中,用应用程序域来隔离资源。当有一个网站挂掉,将会影响其他网站。
II6引用了应用程序池的概念来处理这个问题,一个网站可以独立一个应用程序池,一个池创建一个w3wp.exe进程。解决了当一个网站挂掉会影响其他网站的问题。同时引用了http.sys请求队列,所用的请求都会进入http.sys队列中,由http.sys分派给w3wp.exe,w3wp.exe中的aspnet_isapi再分派给工作者线程处理。
IIS7 在IIS6的基础上,加入了集成模式和经典模式,经典模式就是IIS6的模式,当一个请求进来,会经过IIS的isapi和aspnet_isapi.dll,会有两次信息验证。效率会不高。
而IIS7中引用了集成模式,当时选用了集成模式,请求将不需求ISAPI来激活asp.net,而是直接进入托管代码w3wp.exe中的isapi扩展。在集成模式下可以通过web.config中的system.webserver来配置映射
IIS理解的更多相关文章
- Ext Js学习之IIS理解
站点分为静态网站和动态网站,纯粹利用html编写的网站属于静态网站,不宜维护和更新而利用C#+extjs等前台+后台技术编写的网站就属于动态站点,有更多的交互,易维护和更新,比如降价的页面,利用htm ...
- htaccess转换httpd.ini方法及案例参考
案例1:httpd.ini适合IIS使用,.htaccess适合Apache使用,nginx.conf适合Nginx使用 转换前:httpd.ini [ISAPI_Rewrite] # 3600 = ...
- 深入理解IIS的多线程工作机制
首先让我们来看看IIS里面的这2个数字:最大并发连接数,队列长度.先说这2个数字在哪里看. 最大并发连接数:在IIS中选中一个网站,右键网站名称,在右键菜单中找到并点击[管理网站]->[高级设置 ...
- IIS 7 托管管道模式 经典模式(Classic) 集成模式(Integrated) 分析与理解
IIS 7.0 支持两种管道模式:一种是IIS 7.0最新提供的集成管道模式,另一种是经典管道模式,经典管道模式是由先前版本的IIS提供的. 我们可以通过应用程序池设置管道模式,这项功能对IIS管理员 ...
- 使用IIS建立自己的网站、使用C#编写IIS模拟器,更好的理解Client和Server的relation
如何在IIS服务器上搭建自己的网站呢,今天带着这问题进行简单的实践一下,并且准备模拟一下IIS服务器工作方式,把这个工作方式搞清楚有利于发展. 1.首先应该进入控制面板=>程序=>添加或删 ...
- 深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图
原文:深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图 IIS部署ASP.NET Core2.1 应用拓扑图 我们看到相比Asp.Net, 出现了3个新的组件:ASP.NET Co ...
- MVC — 初步理解IIS工作流程
声明:本文只是自己的总结和积累.IIS7.x 目录 IIS流程及组成部分 ASP.NET流程及组成部分 IIS与ASP.NET MVC 一.IIS流程及组成部分 1.Http.SYS:负责监听HTT ...
- 关于浏览器和IIS基础的简单理解
浏览器 输入域名或者IP地址,按回车访问后:发生了什么??IIS是如何工作的?为什么能这么工作?? 1 浏览器和IIS 分别是两个应用程序:浏览器访问网址实际就是 两个应用程序的数据交互往来: ...
- Web Api 入门实战 (快速入门+工具使用+不依赖IIS)
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...
随机推荐
- RxJava操作符之Share, Publish, Refcount
原文链接:http://nerds.weddingpartyapp.com/tech/2015/01/21/rxjava-share-publish-refcount-and-all-that-jaz ...
- Flink 案例整合
1.概述 Flink 1.1.0 版本已经在官方发布了,官方博客于 2016-08-08 更新了 Flink 1.1.0 的变动.在这 Flink 版本的发布,添加了 SQL 语法这一特性.这对于业务 ...
- 在SpringMVC中获取request对象的几种方式
1.最简单的方式(注解法) @Autowired private HttpServletRequest request; 2.最麻烦的方法 a. 在web.xml中配置一个监听 <listene ...
- iOS工程集成支付宝错误Undefined symbols for architecture armv7
问题描述: 新工程中需要集成支付宝功能,于是咱就把支付宝的库给集成了进入然后就出现了下面这种错误了说,错误信息如下: Undefined symbols for architecture armv7: ...
- CentOS 7 Vmware虚拟机 /root空间不足解决方法(使用gparted live)
1,关闭虚拟机,编辑虚拟机设置,增加虚拟磁盘的大小,我这里增加10GB 2,连接CDrom到ISO文件(gparted-live-0.19.0-1-i486.iso),使用gparted live启动 ...
- Python--类-例子
class Base: def __init__(self): self.data = [] def add(self, x): self.data.append(x) def addtwice(se ...
- [转]mac 10.9.4下配置apache
出处:http://yjmyzz.cnblogs.com mac 10.9.x已经自带了apache,可按如下步骤开启: 1.启动 sudo apachectl start 启动后,访问 http:/ ...
- square开源vim,tmux配置在linux上使用
首先安装需要的软件 apt-get install vim ack-grep git tmux gnome-terminal ctags xclip silversearcher-ag 这里tmux需 ...
- managed_shared_memory.construct造成的性能损失
boost中的IPC进程间通信非常好用,可以直接在共享内存上创建对象,相当于new分配器,实测发现它的分配算法还是有点耗时.第一个测试代码仅仅分配一次,然后频繁的复制,每秒钟可以复制4200次左右. ...
- Z/OS遇到的错误
一. IKJ56251I USER NOT AUTHORIZED FOR SUB+ IKJ56251I YOUR TSO ADMINISTRATOR MUST AUTHORIZE USE OF THI ...