IIS ASP.NET的进程模式是什么呢?他们有什么区别呢?本文将会给你介绍IIS的处理模式以及ASP.NET的处理模式。

IIS ASP.NET的进程方式有哪些呢?他们各自有什么特色呢?来开端咱们的解说。

IIS ASP.NET的进程方式之ASP.NET处理模型

到现在为止,咱们现已理解当恳求一个ASP.NET文件的恳求传到IIS后,他被转递到aspnet_isapi.dll,他是ASP.NET相关处理的首要进口点。实际上,这个扩展显着依赖于体系上IIS的版别,因而处理模型是经过ASP.NET运转时经过有序的操作履行来处理恳求并生成回送,或许有那么一点改动。

在IIS5.X,一切asp.net相关恳求经过ISAPI扩展被分配到外部作业进程叫做aspnet_wp.exe.ISAPI扩展,在IIS进程(inetinfo.exe)中运转,再传递控制权连同一切关于当时传入恳求的信息到aspnet_wp.exe。2个进程间的通讯经过命名管道(众所周知IPC[内部进程通讯]机制树立。ASP.NET作业进程履行ISAPI扩展的大部分使命。留意一下每个WEB使用程序的实质,以及与IIS下不同虚拟目录的通讯,他们在asp.net作业进程同一个进程的上下文中被履行。为了完结读取各自履行中上下文ASP.net引进了使用程序域的概念,缩写AppDomains.他们可以被认为是一个轻量级的进程。更多的将在后边介绍。

假如运转在IIS6上,aspnet_wp.exe进程没有被运用,挑选一个更优的进程叫做w3wp.exe.一起,inetinfo.exe也不再用来传递HTTP恳求到ISAPI扩展,尽管这样他仍是坚持为其他协议的恳求供给服务。尽管IIS6可以运转在兼容方式下而且模仿之前的行为,可是相关于从前的IIS5处理模型有了许多的改动。相对前期***改动,当处理模型运转在IIS5上,传入进来的恳求以lower-kernel-level方式然后传递到正确的ISAPI扩展,然后防止在内部信息处理方面花费过多的操作。鄙人面的阶段中,咱们将进行更深化的研讨。

IIS ASP.NET的进程方式之IIS5.0 处理模型

在windows2000以及XP体系上这是默许的处理模型。如上所说他有IIS inetinfo.exe进程默许在TCP端口80监听传入的HTTP恳求而且把他们推送进行列等候处理。假如恳求类型是asp.net,处理将托付给asp.net isapi扩展 aspnet_isapi.dll.这样轮番经过命名管道与ASP.NET作业进程通讯,终究作业进程处理并传递恳求到asp.net HTTP运转时环境。图表2将详细描叙这个进程。

图表2:IIS5.0处理模型

IIS ASP.NET的进程形式浅析(iis进程模型)  ASP.NET 进程模式 第1张

图表2显现一个咱们没有提到过的元素—ASP.NET HTTP运转时环境。现在他并不是咱们这编文章的主题,他将在接下来的文章中被解析。HTTP运转时可以被看作一个黑色盒子,一切ASP.NET指定处理在这儿产生,一切的受控制代码运转场所,从HTTP运转时一直到httphandler终究处理恳求并生成回送都在这儿被处理。这儿还涉及到ASP.NET管道或HTTP运转时管道。

就这个模型有一个风趣的当地便是一切恳求,一旦被ISAPI扩展处理,就被传递到asp.net作业进程。每次活动时刻有且仅有一个进行实例,一个破例,后边评论。因而所运转在IIS上的asp.net web使用程序实际上也运转在作业进程上。尽管如此,这并不意味着一切使用运转在同一个上下文上并同享他们一切的数据。值得一提,asp.net引进APPDomain概念,实质上是一种供给独立和安全鸿沟的受控制轻量级进程。每个IIS虚拟目录在一个APPDomain里履行,他将主动加载到作业进程只需资源是归于***次恳求的使用程序。一旦appdomain被加载,换句话说,当时恳求一切需求的程序集被加载到appdomain–实际上是传递到asp.net管道处理。若干appdomains可以这样运转在相同的进程中,当多个恳求关于相同的appdomain可以在多个线程出来。尽管如此,一个线程并不归于一个appdomain,他能为多个不同的appdomians处理多个恳求,可是同一个给定的时刻一个线程归于一个APPdomain.

处于功能意图,作业线程可以依据一些规范(经过MACHINCE.CONFIG文件装备)被收回。这些规范包括进程生命周期,恳求以及行列数量,闲暇时刻,内存分配。一旦抵达这些参数中一项临界值,ISAPI扩展将生成一个新的作业进程实例用来处理恳求。实际上,从前的进程实例并没有被封闭,可是他被停止服务等候的恳求。

IIS ASP.NET的进程方式之IIS6.0处理模型

IIS6是WINDOWS2003体系默许的。在IIS5处理模型的上他有几个改动和改善。其中之一***改动便是使用程序池概念。在IIS5系列使用程序上,即一切的appDomains—运转在asp.net作业进程上。为了在安全以及特性上完结一个超卓的界定,IIS6处理模型答应使用程序运转在同一个作业进程的不同复制上。每个使用程序池可以包括多个appdomains(运转在独自一个作业进程复制上).换而言之,这个改动是从单一进程运转一切程序到多个进程运转每一个使用池。这个模型也叫做作业进程阻隔方式。

破例一个大改动相对从前的模型在IIS监听一切传入数据方面。在IIS5里,由IIS进程,inetinfo.exe监听指定的TCP端口。在IIS6中,传入恳求被处理并行列在中心等级来替换从前经过中心驱动调用http.sys的用户方式;这种办法有几个优势相关于从前的方式被叫作 kernel-level 恳求行列。

图表3 IIS6处理模型

IIS ASP.NET的进程形式浅析(iis进程模型)  ASP.NET 进程模式 第2张

图表3首要由恳求处理组成。一旦一个恳求抵达中心等级设备驱动http.sys,然后发送到相应的使用程序池行列,每个行列归于一个指定的使用程序池。

作业进程担任加载asp.net ISAPI扩展,顺次加载 CRL 派遣一切作业到HTTP运转时。

W3WP.exe进程与IIS5下面的aspnet_wp.exe不同,他不是asp.net特有的,可以用来处理任何类型的恳求。什么样的ISAPI模块被加载类型依据需求的服务资源类型。

IIS ASP.NET的进程方式就向你就介绍到这儿,期望对你有所协助。

【修改引荐】

  1. ASP.NET完结静态页面办法浅析
  2. ASP.NET衔接字符串的遍历浅析
  3. ASP.NET缓存的品种及特色浅析
  4. ASP.NET页面跳转的三大办法详解
  5. IIS ASP.NET的实质与联络浅析
转载请说明出处
知优网 » IIS ASP.NET的进程形式浅析(iis进程模型)

发表评论

您需要后才能发表评论