ASP.NET深入学习笔记之IIS5.0的进程模型

1.IIS5.0的进程模型

如果把ASP.NET应用程序部署到windows server 2003 之前的版本(例如windows 2000、windows xp),IIS5.0进程模型是唯一的选择。根据该进程模型,aspnet_isapi.dll不能处理.aspx文件,而是充当调度程序。它搜集所有有关激活URL和基础资源的信息,然后把请求传递给另一个不同的进程:名为aspnet_wp.exe的asp.net工作进程。ISAPI扩展和工作进程之间的通信通过命名管道进行。

IIS5.0进程模型的整个原理图

工作进程的一个副本始终在运行,并托管所有活动的Web应用程序。唯一例外的情况是一个带多个CPU的Web服务器。在这种情况下,可以配置ASP.NET运行库,一边多个工作进程运行,使每个CPU分配到一个工作进程。例如,如果有多个CPU,并且需要运行线程安全的代码,但又不足以假设它在一个多处理器环境下也能顺利运行,则需要这么做。多个进程在一台单服务器中的多个CPU上运行的模型成为Web garden,并受machine.config文件中的<processModel>节上的属性控制。

当一个工作进程被所有的CPU使用,并控制所有的Web应用程序时,并不一定表示没有实现进程隔离。事实上,每个Web应用程序用自己虚拟目录进行标识,并且属于一个不同的应用程序域(AppDomain)。每当客户第一次处理一个虚拟目录时,在ASP.NET工作进程内创建一个新的AppDomain。创建新的AppDomain后,ASP.NET运行库加载所有必须的程序集,并把控制传递给托管的HTTP管道以实际服务于请求。

如果客户从一个已经运行的Web应用程序请求一个页,则ASP.NET运行库只是把该请求转发到与该虚拟目录关联的先有的AppDomain。如果该AppDomain中没有加载处理该页所需的程序集,则动态地创建它;否则,如果在第一次调用时已经创建,则只是使用它。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值