下载搜学网app
查学校 查学区 查辅导 查饭桌 查询中考数据
logo 点击咨询

asp.net的集成模式(Integrated mode)和经典模式(Classic mode)的区别


       asp.net现已成为web开发的主流工具之一,随着微软的开源工作的深入,asp.net不断的攻城略地,在企业级市场斩获颇丰。背靠windows的大靠山,左手拥抱开源,右手握着Azure,蚕食掉java和php占据的部分市场不是难事。尤其是有visual studio这一“宇宙第一”的IDE神器助阵,前景那是相当广阔。

      asp.net通过iis发布的时候,设定应用程序池的属性的时候,会让你选择是工作在“经典模式”还是“整合模式”,如下图所示:

集成还是经典.jpg

这两者到底有什么区别呢,现在就详细的阐述一下。



(1)经典模式(Classic mode)iis6及其以前的版本采用的一种工作模式,这种方式类似一种插件的工作原理,iis把asp.net当作一种外来物种对待,利用aspnet_isapi.dll和aspnet_filter.dll支撑其工作。毫无疑问,这时候iis并没有把asp.net当作亲生儿子来对待,并没有收到任何特殊的照顾,而仅仅是享受跟php差不多的待遇,所以嘛,你懂的.....


(2)集成模式(Integrated mode):iis7开始采用的一种新的工作模式,与iis内核紧密整合。一定是asp.net的开发团队找到盖茨爸爸抗议过了,要求认祖归宗,名正言顺的成为iis的亲生儿子。结果就是,asp.net的支持被融入到了iis的核心功能里面,不再以插件支持的形式尴尬的活着了。地位提高了,能干的活也多了,工作效率也提升了。这时候的asp.net,才真正成为了iis的一部分。


         集成模式成为了iis彻头彻尾的亲生儿子以后,有了什么好处呢?第一个好处就是所有的request的请求处理流程变的浑然一体,省掉了采用“经典模式”时候的许多中间环节。在经典模式中,诸如授权和身份验证等工作需要进行两遍,先是iis处理一遍,跟着在Aspnet_isapi.dll里又处理一遍,得到处理结果以后还要再转到iis里并response回去,这才完成一个基本的处理流程。这很像前几年我们老家县城和大城市之间的通勤大巴,除非是五一、国庆节等客流高峰期,平时来往与县城与省会之间人都很少,大巴车为了多拉些客人免得赔本,就会在规定的发车时间先行出站,却并不立即开跑,而是开到距离发车站2,3公里的路边停着,另外派一辆中巴之类的小车,在始发车站附近逡巡,搜集好客人再送到大巴上。

         集成模式就没有这么费劲了,只需要一条流程走下来,就完成了一个request的处理,省事又省力。

既然集成模式这么好,那直接全部转到集成模式就行了,干嘛还要进行一个二选一呢?因为有些早期的代码,编程的时候使用了一些经典模式特有的接口,并不能直接流畅的运行在集成模式下,所以就保留了对于经典模式的支持。在进行老系统迁移的时候要注意这一点,首先看能否在集成模式下运行,不行的话再用回经典模式。


该怎么选择,应该明白了吧?



评论