IIS5与IIS6 Asp.net应用程序生命周期和页生命周期之一。

在写这篇博客之前,知好多前辈已经写过,自己班门弄斧,主要是加深自己对细节的理解,另一方面希望对浏览此篇文章的读者一个新的认识。注定是一长篇。肯定有新的认识,图示都是原创。

此篇所有牵涉的细节,我会一一列出,估计持续更新数日。

当从浏览器发送到服务器一个请求,整个流程与细节的把握。IIS5和IIS6的有些许的不同。

全面理解,把握细节

一,请求到达IIS再到Framework。

若看以下的讲解,需要了解:

1,IIS5和IIS6都具备inetinfo.exe进程。

2, inetinfo.exe(任务管理器看到)的作用:包括许多由IIS提供的服务(HTTP、FTP、SMTP等)。Inetinfo.exe接收来自TCP/IP子系统的请求,并将这些请求送往各自的服务,      这些服务又解释请求,执行请求,并把结果返回给客户机。因为所有这些服务都在同一个进程  (inetinfo.exe)  中运行,所以它们能够共享高速缓存的数据,如文件句柄、      帐户信息和日志文件数据。

3,Name Pipes命名管道是一种协议,相当于TCP/IP中的Socket协议,两者有很大的相似之处,用到局域网和广域网的各自优点。

详情请参照:http://msdn.microsoft.com/zh-cn/library/ms187892.aspx

4,inetinfo.exe和aspnet_isapi.dll的关系,这里之处为”调用“是否有不妥之处。也就是了解.exe文件和.dll文件的之间的关系,此点自己查阅相关资料。

5,注册表:在这里的主要作用为文件的关联。详情自己查阅相关资料。

6,Work Process工作者进程在IIS5和IIS6分别叫做w3wp.exe和aspnet_wp.exe。两者指得都是工作者进程,只是名字不同。

7,IIS和FrameWork之间的通信:IIS是非托管程序,而FrameWork上是托管程序,两者通过指针ecb将Request传递资源包。

8,托管和非托管代码代码。请参考:http://www.cnblogs.com/Holmes-Jin/archive/2012/03/14/2396411.html

9,http.sys在(C:\Windows\System32\drivers\)中,内核模式与用户模式,属于操作系统的知识,这里不做深入研究。

一,IIS5inetinfo.exe接受来自浏览器的请求,然后调用”aspnet_isapi.dll“,aspnet_isapi.dll"遵照"”命名管道协议Named Pipes“通过ecb指针和Work Process(w3wp.exe)进行传输,此时aspnet_isapi.dll与w3wp.exe属于不同的进程,传输效率不是最优的,在iis6中优化了这一点。

二,IIS6是服务器的网卡驱动内核模块C:\Windows\System32\drivers\http.sys监听到,然后会查询注册表Regitry此请求和那个应用程序关联(注册表的用途之一处理。交予W3SVC服务属于svchost.exe进程中的一个服务,能在任务管理器“服务“中看到)然后查看inetinfo.exe交予aspnet_isapi.dll,此时的aspnet_isapi.dll被划进Worker Process工作者进程中(aspnet_wp.exe),交予FrameWork处理。因为aspnet_wp.exe与FrameWork属于同一工作者进程,传输效率大大优于IIS5。IIS6,它是完全为ASP.NET做过优化的。

是的,我也做个图。

二,请求到达进入framework后所做的处理。

时间: 2024-12-28 17:14:08

IIS5与IIS6 Asp.net应用程序生命周期和页生命周期之一。的相关文章

ASP.NET 页生命周期概述

ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤.这些步骤包括初始化.实例化控件.还原和维护状态.运行事件处理程序代码以及进行呈现.了解页生命周期非常重要,因为这样做您就能在生命周期的合适阶段编写代码,以达到预期效果.此外,如果您要开发自定义控件,就必须熟悉页生命周期,以便正确进行控件初始化,使用视图状态数据填充控件属性以及运行任何控件行为代码.(控件的生命周期基于页的生命周期,但是页引发的控件事件比单独的 ASP.NET 页中可用的事件多.) 常规页生命周期阶

ASP.NET 页生命周期概述1

ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤.这些步骤包括初始化.实例化控件.还原和维护状态.运行事件处理程序代码以及进行 呈现.了解页生命周期非常重要,因为这样做您就能在生命周期的合适阶段编写代码,以达到预期效果.此外,如果您要开发自定义控件,就必须熟悉页生命周期, 以便正确进行控件初始化,使用视图状态数据填充控件属性以及运行任何控件行为代码.(控件的生命周期基于页的生命周期,但是页引发的控件事件比单独的 ASP.NET 页中可用的事件多.) 常规页生命周

ASP.NET 页生命周期和页面事件处理管道

ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤.这些步骤包括初始化.实例化控件.还原和维护状态.运行事件处理程序代码以及进行呈现.了解页生命周期非常重要,因为这样做您就能在生命周期的合适阶段编写代码,以达到预期效果.此外,如果您要开发自定义控件,就必须熟悉页生命周期,以便正确进行控件初始化,使用视图状态数据填充控件属性以及运行任何控件行为代码.(控件的生命周期基于页的生命周期,但是页引发的控件事件比单独的 ASP.NET 页中可用的事件多.) 一般来说,页要经

ASP.NET应用程序生命周期趣谈(二)

在上回书开始的时候我们提到博客园的IIS看了一眼我的请求后就直接交给ASP.NET去处理了,并且要求ASP.NET处理完之后返回HTML以供展示. 那么我们不仅要问: 1,    IIS肯定是没有眼睛的啦,那它是怎么“看”的呢? 2,    在“看”到了.aspx的页面请求后又是如何把它交给ASP.NET的呢?如果不做任何处理那它的存在又有什么意义呢? 3,    ASP.NET收到这个处理请求后又是如何做的呢?它是怎么创建Context对象又是如何“雇佣”项目经理HttpApplication

asp.net应用程序生命周期和asp.net网页的生命周期

一.asp.net应用程序生命周期 asp.net应用程序生命周期以浏览器向web服务器(比如IIS服务器)发送请求为起点,先后经历web服务器下的ISAPI(Internet Server Application Programming Interface)扩展接收到应用程序的第一个请求并创建一个应用程序域,为每个请求创建ASP.NET核心对象(如HttpContext.HttpRequest.HttpResponse),将HttpApplication对象分配给请求(即通过创建HttpApp

asp.net应用程序生命周期

HTTP 模块ASP.NET 应用程序生命周期可通过 IHttpModule 类进行扩展.ASP.NET 包含若干实现 IHttpModule 的类,如 SessionStateModule 类.您还可以自行创建实现 IHttpModule 的类. 原文

【译】ASP.NET应用程序和页面生命周期

为何翻译此文 一.此文是Code Project社区2010年4月ASP.NET板块的最佳文章,说明了此文的份量: 二.锻炼自己的英文技术文章翻译能力,提高英文技术文档阅读能力: 三.了解掌握ASP.NET页面生命周期是非常必要的,这有助于我们更加灵活的控制页面,以我们需要的方式编程开发: 关于原文作者 原文作者:Shivprasad koirala 原文地址:http://www.codeproject.com/Articles/73728/ASP-NET-Application-and-Pa

ASP.NET应用程序与页面生命周期

在本文中,我们将了解不同的事件,ASP.NET 应用程序的生命周期以浏览器向 Web 服务器(对于 ASP.NET 应用程序,通常为 IIS)发送请求为起点,直至将请求结果返回至浏览器结束.在这个过程中,首先我们需要了解ASP.NET请求的2个大致的步骤.其次我们将详细了解 'httphandler ',' httpmodule和 asp.net 页面对象(Page)中不同的事件的执行顺序,逻辑. 二个步骤的过程:asp.net请求处理,2步的过程如下所示,用户发送一个请求到IIS 服务器: 1

ASP.NET应用程序生命周期和ASPX页面生命周期图解

ASP.NET应用程序生命周期和ASPX页面生命周期图解,布布扣,bubuko.com