技术开发 频道

深入解读IIS 7中应用程序池的管道模式

  【IT168 评论】VS 2010发布之后,随着而来的框架版本也升级到了.NET Framework 4.0。然而如何理解IIS 7中的应用程序池的管道模式,尤其是如何理解“托管模型(integrated mode)”,今天特意再写一篇文章来介绍这个问题。

  IIS 7是微软最新版本的IIS版本,从Vista开始提供,目前在Vista,Windows 7,Windows Server 2008中提供。这个全新的版本中,一个突出的亮点就是,它提供了两种管道模式,来支持不同的应用程序场景。

  这里提到的管道模式,指的是应用程序池(Application Pool)的一个属性

如何理解IIS 7的两种应用程序池的管道模式

  上图中可以看到,这两种管道模式分别为Integrated(集成)和 Classic(经典)

  那么,到底如何理解这两种模式呢?

  Classic模式:指的是与IIS 6或者之前版本保持兼容的一种模式,一个典型问题就是,在处理ASP.NET这种动态网站的时候,它是通过一个所谓的ISAPI程序,作为插件的方式来工作的。针对不同的动态应用程序(例如ASP,PHP等),会需要不同的ISAPI。

  例如,下面就是一个注册号的ISAPI映射

如何理解IIS 7的两种应用程序池的管道模式

  从上图可以看出,不同的Request,指定了不同的ISAPI程序。下图是对于这种Pipeline的一个图形化说明

如何理解IIS 7的两种应用程序池的管道模式

  Integrated模式:这种全新的模式,允许我们将ASP.NET更好地与IIS集成,甚至允许我们在ASP.NET中编写一些功能(例如Module)来改变IIS的行为(扩展)。集成的好处是,不再通过ISAPI的方式,提高了速度和稳定性。至于扩展,则可以使得我们对于IIS,以及其他类型的请求有更多的控制。(例如,我们希望静态网页也具备一些特殊的行为)

  下图解释了这一点。

0
相关文章