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

系统 2295 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中没有加载处理该页所需的程序集,则动态地创建它;否则,如果在第一次调用时已经创建,则只是使用它。

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


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论