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后所做的处理。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。