ASP.NET运行时

1 web处理程序(iis) inetinfo.exe   asp.net应用程序 aspnet_wp.exe(iis5) w3wp.exe(iis6)
inetinfo.exe处理一个html请求(包括html页面、文本文件、jpeg 和 gif 图像等),如果是一个aspx请求,则将请求传递到aspnet_isapi.dll(多个请求就排队一个个来),再由aspnet_isapi.dll调用aspnet_wp.exe,对请求进行处理.同时aspnet_isapi.dll负责监测aspnet_wp.exe运行情况,当发现运行异常或挂起,则关闭aspnet_wp.exe.这样,不管asp.net应用出现什么问题,不会影响到web处理程序的运行.

2 aspnet_wp.exe创建HttpRuntime实例(每个AppDomain都有一个HttpRuntime类实例),HttpRuntime会初始化内部对象(比如Cache对象),同时创建上下文HttpContext类的实例,得到请求的http信息(比如HttpRequest).HttpRuntime实例通过HttpApplicationFactory工厂类维护一个HttpApplication池,当一个应用请求到达时,先检查有无可用的HttpApplication实例,如果没有,则根据global.asax创建并触发Application_OnStart事件.

3 一个请求的具体是由实现了IHttpHandler接口的类处理的,HttpApplication实例通过工厂类,根据machine.config文件中<httpHandlers>的定义实例化处理请求的类IHttpHandler定义了两个接口:IsReusable和ProcessRequest,每个特定处理的逻辑在ProcessRequest中定义.

4 如果是一个aspx请求,程序会加载一个命名为ASP.****_aspx的类,程序会先搜索全局程序集缓存 (GAC)、Bin和C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files文件夹,如果没有找到则会在C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files文件夹下创建一个随机命名的dll.

 

 

 

 

 

http://www.larcw.net/

 

 

你可能感兴趣的:(html,Web,cache,application,asp.net,IIS)