IIS5架构

IIS5架构图

220756_VHQW_2425669.jpg

IIS5 的所有组件都工作在用户模式中,核心组件INETINFO侦听WinSock端口(例如常见的TCP 80端口)。当HTTP访问请求到达时,工作在内核模式的TCP/IP驱动将其直接路由到Inetinfo.exe进程,Inetinfo.exe进程自己本身对此请求进行处理或者将其交付扩展组件(如ISAPI扩展)进行处理。IIS5 使用COM+提供的DLLHOST基础结构方式进行工作。

IIS5具有以下的缺陷:

  • Inetinfo.exe中执行第三方代码,但如果执行的代码有问题,那么会导致整个Web服务器停止工作;

  • ISAPI Dll被加载到InetInfo.exe进程中,它和工作进程之间是一种典型的跨进程通信方式,尽管采用性能最好的命名管道,但是仍然会带来性能的瓶颈;

  • 所有的ASP.NET应用,运行在相同的进程(aspnet_wp.exe)中的不同的应用程序域(AppDomain)中,基于应用程序域的隔离级别不能从根本上解决一个应用程序对另一个程序的影响,在更多的时候,我们需要不同的Web应用运行在不同的进程中。

II5和ASP.NET

IIS 5运行在IIS进程InetInfo.exe中,在该进程中一个最重要的服务就是World Wide Web Publishing Service(简称W3SVC)的Windows Service。W3SVC的主要功能包括HTTP请求的监听、工作进程的管理以及配置管理(通过从Metabase中加载相关配置信息)等。

当检测到某个HTTP Request后,先根据扩展名判断请求的是否是静态资源(比如.html,.img,.txt,.xml等),如果是则直接将文件内容以HTTP Response的形式返回。如果是动态资源(比如.aspx,asp,php等等),则通过扩展名从IIS的脚本影射(Script Map)找到相应的ISAPI Dll。 

ISAPI是Internet服务器API(Internet Server Application Programming Interface)的缩写,是一套本地的Win32 API,具有较高的执行性能,是IIS和Web应用或者平台之间的纽带。比如ASP ISAPI桥接IIS与ASP,而ASP.NET ISAPI则连接着IIS与ASP.NET。ISPAI定义在一个Dll中,ASP.NET ISAPI对应的Dll为Aspnet_isapi.dll,你可以在目录“%windir%\Microsoft.NET\Framework\{version no}\”中找到该Dll。

ISAPI支持ISAPI扩展ISAPI筛选,前者是真正处理HTTP请求的接口,后者则可以在HTTP请求真正被处理之前查看、修改、转发或者拒绝请求,比如IIS可以利用ISAPI筛选进行请求的验证(Authentication)。

如果请求ASP.NET的资源类型,Aspnet_isapi.dll会被加载,ASP.NET ISAPI扩展会创建ASP.NET的工作进程(如果该进程尚未启动),对于IIS 5.x来说,该工作进程为aspnet_wp.exe。IIS进程与工作进程之间通过命名管道进程通信,以获得最好的性能。

在工作进程初始化过程中,.NET 运行时(CLR)被加载,从而构建了一个托管的环境。对于某个Web应用的初次请求,CLR会为其创建一个AppDomain。在此AppDomain中,HTTP Runtime被加载并用以创建相应的应用。对于寄宿于IIS 5.x的所有Web 应用都运行在同一个进程(工作进程Aspnet_wp.exe)的不同AppDomain中

参考:1. II5架构 http://www.cnblogs.com/zhaozhan/archive/2010/08/17/1801792.html

           2. IIS7机构原理 http://www.cnblogs.com/isdavid/archive/2013/05/28/3103228.html

转载于:https://my.oschina.net/yqz/blog/499074

Windows xp IIS 信息服务组件安装包: 该包中包含Windows xp 安装盘I386文件夹内提取,只包含 IIS 信息服务组件. 一: IIS 5.1版本适用于Windows XP_SP1、XP_SP2、XP_SP3 二: ISS 5.1安装步骤(各版本IIS都可以按照该方法安装,以IIS5.1安装至Windows xp_SP3为例) 1.依次打开 左下角的"开始"菜单----控制面板----选择"添加/删除程序",打开"添加/删除程序"窗体 ----点击窗体左侧"添加/删除Windows组件"(A) 2.解压IIS 压缩包,在打开的"Windows组件向导"窗体中,将"Internet 信息服务(IIS)"前面 小方框钩选上----点击下一步-----在弹出的"插入磁盘"窗体中,点击"确定"按扭------ 将解压后的IIS 5.1路径(如D:\飞翔下载\IIS\iis5.1xp)复制到"文件复制来源"输入框中, 如再遇到需要"插入光盘"之类的提示,继续粘贴该IIS路径即可,直到完成安装,当出现安装 完成提示按扭时,点击"完成"按扭关团向导,即可完成安装. 三: 问题及解决方案 1.IIS安装过程中,如果出现某些文件无法复制,则可能是该IIS不适合你的系统,请换一个 对应于系统的IIS,IIS版本说明如下. Windows XP_SP1 ,XP_SP2 ,XP_SP3 系统 适用 IIS5.1版本 Windows 2000 系统 适用 IIS5.0 版本 Windows server 2003系统 适用 IIS 6.0 版本 Windows Server 2008 ,Vista 系统 适用 IIS 7.0 版本 2.能完成IIS的安装即无法正常使用等问题,部分原因如下 可能与迅雷等网络工具TCP 端口产生冲突,打开控制面板----双击"性能和维护"打开--- "管理工具"----"Internet 信息服务"---"网站"---"选择"默认网站"右击---选择"属性" 菜单---在默认网站属性窗体分页框内选择"网站"标题---"TCP 端口" ----设为80即可完 成(IIS 默认80端口.如果使用其它端口,如8080,测试时需http://localhost:8080). 3.IIS 80端口被占用的解决方法 cmd 命令窗口----输入netstat -abn ->c:/port80.txt然后到c盘port80.txt文件中找到 占用80端口的程序pid,记下pid.打开任务管理器,点击"查看"/选择列,勾选"PID(进程标识 符)",然后单击"进程"标签,找到80端口对应的pid,就可以看到是哪个程序占用的了,更改 这个程序的port,再重启这个程序,使更改生效.再次启动iis. 注意:对于Windows xp英文版操作系统 经测试能进行全部组件的安装,也能正常使用,但IIS信息服务是中文版的。 ================ 安装iis5.1时找不到zClientm.exe的解决方法! 把这[Internet游戏]前的选择框里的那个勾去掉,然后再安装IIS,成功安装,问题解决!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值