首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

IIS经典模式和集成模式的区别

在IIS 7.0中,应用程序池有两种运行模式:集成模式和经典模式。

应用程序池模式会影响服务器处理托管代码请求的方式。

如果托管应用程序在采用集成模式的应用程序池中运行,服务器将使用 IIS 和 ASP.NET 的集成请求处理管道来处理请求。

如果托管应用程序在采用经典模式的应用程序池中运行,服务器会继续通过 Aspnet_isapi.dll 路由托管代码请求,其处理请求的方式就像应用程序在 IIS 6.0 中运行一样。

经典模式:

指的是与IIS 6或者之前版本保持兼容的一种模式.

在IIS 6.0中的经典模式中,ASP.NET是一个添加到IIS中的ISAPI。IIS 7.0之所以支持这种模式,是为了做到向后兼容。但是,经典模式缺少许多集成模式才能提供的特性。在经典模式中,IIS拥有自身的管道,这些管道可以通过创建一个ISAPI扩展进行扩充,而ISAPI扩展是以难以开发而著称的。ASP.NET作为一个ISAPI扩展运行,只是IIS管道中的一项组成部分。

注意,在这种情况下,ASP.NET仅当IIS处理ISAPI扩展时才能够发挥作用。

利用文件扩展名,可以判断使用哪个ISAPI处理程序。例如,可以将扩展名为 和的文件映射;并且将扩展名为的文件映射到,这样就可以处理传统的ASP页面;此外,将扩展名为的文件映射到,这样就可以处理PHP页面,前提是已经安装了。

此外,在IIS 6.0和IIS 7.0的经典模式中,某些特性是重复的。例如,错误处理就是一种重复的特性,因为IIS可以处理非ASP.NET页面,而ASP.NET可以处理所有将处理程序映射为的页面。

在IIS 6.0中,我们可以将所有文件类型都映射到ASP.NET,但是这样做存在一些限制。最大的限制就是如何处理默认文档:一个默认文档仅当在中或者在一个HTTP模块中被指定为默认文档时,这个默认文档才能够得到处理。某些自定义的配置需要使用处理所有的文件类型。IIS 7.0可以轻易地解决这个问题。

经典模式可以在无须修改的前提下运行现有的Web网站,因此,如果使用的Web farm中既包括IIS 6.0服务器,也包括IIS 7.0服务器,或者因为某些原因无法将文件转换为遵循新语法的文件,那么就可以使用经典模式。

集成模式:

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

利用集成模式,可以将ASP.NET作为IIS的有机组成部分。现在,IIS服务器的功能被划分为40多个模块,因此也就将IIS和ASP.NET的功能划分为不同的组成部分。诸如、、、、,以及等模块都是IIS管道的组成部分。

注意,、、,以及原本就是ASP.NET的组成部分,与IIS并无关系。

IIS管道提供了二十多种事件,开发人员可以利用这些事件来扩展Web服务器的功能。实际上,通过创建定制模块,同时更新,可以仅使用自定义模块,而无须再使用微软公司提供的内置模块,我们可以将IIS 7.0中的模块替换为自定义的模块。

经典模式和集成模式之间配置的区别

IIS 7.0对配置文件进行了一些修改,Web开发人员可以使用这些修改内容。例如,节就是这样一项修改,无论是经典模式还是集成模式都可以识别节,同时,节既可以在文件中设置,也可以在文件中设置。节既可以控制静态页面,也可以控制动态页面。即使在经典模式中,节也具有重要作用,它可以帮助Web开发人员在文件中设置不同的IIS配置。

在集成模式中,HTTP模块和HTTP处理程序不再定义于中,而是定义于中。如果在集成模式中运行一个包括了HTTP模块或HTTP处理程序的文件,那么将会发生失效。幸运的是,微软公司已经详细规定了一个编号为500.22的错误信息,这个错误信息说明了如何一步步地迁移文件。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210212A07L5400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券