IIS5.X与ASP.NET
2019-12-19 12:21:53 4 举报
AI智能生成
IIS5.X与ASP.NET
作者其他创作
大纲/内容
IIS与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和工作进程之间是典型的跨进程通信,会带来性能瓶颈
所有的网站都是运行在同一个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应用
HTTP.SYS监听到HTTP请求,分发给W3SVC
W3SVC解析获取到UR 获取到对应的应用程序池或者工作进程
工作进程初始化,响应的ISAPI dll被加载(aspnet_isapi.dll)
IIS7.0
引入Window进程激活服务(WAS) 分流W3SVC的功能
WAS负责配置管理、进程管理W3SVC负责接受HTTP请求
WAS提供了对非HTTP请求的支持
监听基于TCP 命名管道、MSMQ传输协议
WAS接收来自W3SVC、或者监听适配器的请求
创建对应的工作进程,在处理请求过程中,加载相关配置信息
收藏
收藏
0 条评论
下一页