遗忘海岸

江湖程序员 -Feiph(LM战士)

导航

关于Asp.net应用程序生命周期

 

   收集到的参考资料:

 (原创)IIS6.0架构(1)
(翻译)从底层了解ASP.NET体系结构
ASP.NET 2.0运行时简要分析
(msdn资料)http://msdn.microsoft.com/zh-cn/library/ms178473(VS.80).aspx
(系列文章)http://www.cnblogs.com/artech/category/76631.html
[读书笔记][深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白

  在II6环境下, w3wp.exe是其工作进程, 通过windows的任务管理器能看到w3wp.exe进程,当然有时候会有多个w3wp.exe进程,具体的个数取决于你在ii6中的[应用程序池]建立的个数,另外每个[应用程序池]的属性配置中->性能->Web园的设置(默然为1)也会影响你在任务管理器中看到w3wp.exe的个数,注意当长时间没有请求时对应,应用程序池的w3wp.exe会撤消,应此如果你想在任务管理器中看到他们,那么最好给每个应用程序池包含的网站的其中一个站点发个资源请求(如访问页面等),注意一个应用程序池可以对应多个站点,反过来说可以把多个站点分配给一个应用程序池(参考ii6.0).

 w3wp.exe是ii6.0处理用户请求(通常是客户端IE对网页的请求)的工作进程, 当使用asp.net时,.net运行时(也叫CLR,公共语言运行时)会在w3wp.exe中加载, 而加载CLR后,名为 ApplicationManager 的类会在请求到来时,为每个 站点(属于同个应用程序池的站点) 创建一个AppDomain,并维护这个AppDomain, 因此每个站点(指asp.net应用)对应一个AppDomain, 多个AppDomain可以在一个进程内(多个站点可以属于一个应用程池)

在AppDomain内HttpRuntime 会创建立并维护一系列HttpApplication , 当然同一时间内,一个HttpApplication只能服务一个请求(独占),但是一个HttpApplication可以被其他请求重用.

 

 

posted on 2008-10-22 16:49  遗忘海岸  阅读(318)  评论(0编辑  收藏  举报