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来配置映射

 

转载于:https://www.cnblogs.com/wolf12/p/5143411.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值