IIS5.X与ASP.NET
2019-12-19 12:21:53 4 举报
AI智能生成
IIS5.X与ASP.NET
作者其他创作
大纲/内容
基于IIS6.0描述请求过程
手绘版请求过程
打印版请求过程
IIS5.X
InetInfo.exe进程
运行IIS
W3SVC(WWW Publishing Service)
功能
Http请求的监听
激活和管理工作进程
加载配置(从MetaBase)
ISAPI动态链接库支持
ISAPI动态链接库有多个,对应不同的后缀名文件
ISAPI扩展
真正处理HTTP请求的接口
ISAPI筛选
在http请求被处理之前进行查看、转发、修改和拒绝请求
IIS响应过程
根据扩展名判断是静态资源
直接返回给客户端
根据扩展名判断是动态资源
脚本映射找到对应的ISAPI的动态链接库并加载
创建aspnet.exe工作进程。
工作进程和IIS进程之间通过管道进行通信
工作进程和IIS进程之间通过管道进行通信
缺点
IIS和工作进程之间是典型的跨进程通信,会带来性能瓶颈
所有的网站都是运行在同一个aspnet.exe进程中的,
在同一个进程的不同应用程序域,
不能解决不同程序之间的影响。
在同一个进程的不同应用程序域,
不能解决不同程序之间的影响。
运行示意图
IIS6.0
W3SVC运行在SvcHost.exe进程中
HTTP请求接收,接受HTTP.SYS的请求
配置管理
从元数据库加载配置信息对相关组建进行配置
进程管理
创建、回收、监控工作进程
相对于IIS5.X的改进
将ISAPIdll从W3SVC脱离,加入到工作进程,解决问题1
引入应用程序池,每个网站可以创建单独的应用程序池
,每个应用程序池对应一个单独的工作进程 保证程序的独立性
,每个应用程序池对应一个单独的工作进程 保证程序的独立性
创建HTTP.SYS监听器
用于监听HTTP请求
以驱动程序运行在内核模式下
优点
持续监听,作为驱动程序一直运行,能即使响应HTTP请求
更好的稳定性(因为运行在内核模式),不受工作进程、IIS、WEB应用的影响
内核模式下数据缓存,提高响应速度
ASP.NET ISAPI
加载CLR
创建应用程序域
初始化Web应用
IIS响应过程
HTTP.SYS监听到HTTP请求,分发给W3SVC
W3SVC解析获取到UR
获取到对应的应用程序池或者工作进程
获取到对应的应用程序池或者工作进程
工作进程初始化,响应的ISAPI dll被加载(aspnet_isapi.dll)
运行示意图
IIS7.0
引入Window进程激活服务(WAS) 分流W3SVC的功能
WAS负责配置管理、进程管理
W3SVC负责接受HTTP请求
W3SVC负责接受HTTP请求
WAS提供了对非HTTP请求的支持
监听基于TCP 命名管道、MSMQ传输协议
IIS响应过程
WAS接收来自W3SVC、或者监听适配器的请求
创建对应的工作进程,在处理请求过程中,加载相关配置信息
运行示意图

收藏

收藏
0 条评论
下一页