IIS7也用了好久了,关于Application Pool Integrate Mode 和 Classic Mode 究竟是什么也是懵懵懂懂,于是下决心去官网看了技术文档,终于恍然大悟,特来分享一下。

IIS从7开始引入了Application Pool,解决了IIS6设置在Server上的问题(因为设置在Server上,因此你不能让两个application跑在两个mode下)。并且增加了模式设置,分别为 Integate Mode 和 Classic Mode。那么这两个模式有什么区别呢,下面我慢慢道来。

首先要先说下IIS的Module,IIS7开始引入了Module,每个Module有各自的功用,Module包含IIS自己携带的,称为Native Module,和外来引入了。而由.NET引入的Module称为Managed Module。如果你仔细查看Native Module和Managed Module,你会发现两者是有重复的,特别是用户认证这里,而如何调用这些Module,就是这两个模式的主要区别。

先说说Integrate Mode。在这个Mode下,当接收一个新的request的时候,request会传送一个有序的事件列表,然后IIS会根据各个事件去调用需要的Native Module 和 Managed Module。就拿用户认证来说吧,如果是一个ASP.NET应用程序,那么IIS会忽略Native Module,而去直接调用Managed Module。这样便提高了处理request的效率,并且保证该应用程序的所有用户认证都被.Net程序管理。

对于Classic Mode,其实和IIS6 中的isolation mode是一样的,一个request来了,IIS先调用Native Module处理,然后如果需要运行托管代码,则调用aspnet_isapi.dll去解析,这时才调用Managed Module。如果你用了Form的认证方式,那么要先经过Native Module的一次认证,然后在调用托管代码的时候再运行一次Managed Module认证,这就重复了两次。此外,如果一个资源不运行托管代码,那么托管代码的认证是不会运行了,以Form方式为例,如果调用一个静态资源,则只会调用IIS的原生认证,而不会使用Form认证。可见Classic Mode在效率和部署配置上不如Integrate Mode好。

总结一下,通过上面不难看出,如果写ASP.NET程序,运行在Integrate Mode是最好的选择。Classic Mode更像是一种向下兼容的模式,如果你的应用在Integrate Mode下有问题,可以切换到该模式下一用。此外,Classic Mode的另外一个应用场景就是原生模块的多样,还拿认证来说,原生的就比.NET的多出不少,如果为了降低开发成本,也可运行在Classic Mode下,当然也要承担上面所说的执行效率和安全问题。

IIS7 Application Pool Integrate Mode 和 Classic Mode 的区别的更多相关文章

  1. 如何在Windows 2003+IIS6的环境下找回应用程序池(application pool)中的服务账号密码

    上一篇文章说了说如何在Win2008+iis7中取出SharePoint管理账号密码的方法. 整个过程简单的讲,就是通过使用要找回密码的账号用来在SharePoint中创建一个临时的Web Appli ...

  2. Application Pool Identities

    Whether you are running your site on your own server or in the cloud, security must be at the top of ...

  3. How do I create an IIS application and application pool using InnoSetup script

    Create an IIS application. Create a new IIS application pool and set it's .NET version to 4. Set the ...

  4. 排错技能:任务管理器中追踪某w3wp.exe是哪个IIS站点的application pool

    如果Windows的任务管理器中发现某个w3wp.exe占用了100%CPU,那我们就要揪出这是那个网站的application pool在作怪, 首先,每个站点一定要单独使用各自的applicati ...

  5. 批量启动application pool

    在powershell中执行 Get-ChildItem IIS:\AppPools | where {$_.state -eq "Stopped"} | Start-WebApp ...

  6. SharePoint Error occurred in deployment step 'Recycle IIS Application Pool': 0x80070005:拒绝访问

    错误出现的前提:多个用户在一台机器上做开发,使用非系统管理员账号时会出现,因为一般创建网站集时指定管理员为系统管理员: 使用 Visual Studio 2010 部署时报错:Error occurr ...

  7. 应用程序池和应用程序域的区别(Difference between application pool and application domain)

    来自StackOverFlow:  http://stackoverflow.com/questions/8486335/difference-between-an-application-domai ...

  8. Recycling Settings for an Application Pool <recycling>

    Overview The <recycling> element contains configuration settings that control the conditions t ...

  9. IIS application pool access desktop denied

    https://stackoverflow.com/questions/5437723/iis-apppoolidentity-and-file-system-write-access-permiss ...

随机推荐

  1. lvs + keepalived 介绍及安装

    LVS介绍 lvs 核心ipvs      Ipvs(IP Virtual Server)是整个负载均衡的基础,如果没有这个基础,故障隔离与失败切换就毫无意义了.Ipvs 具体实现是由ipvsadm ...

  2. [Notes] Timer Comparision when turn influence computing on/off

    Overall algorithm – bunny 关闭influence计算                                                             ...

  3. MVC的自定义动作过滤器(一)

    感谢好朋友wolfy在园子里的很多有价值的文章,方便了很多朋友,向榜样学习,开始自己的总结之旅:) 遇到问题: 1.http://q.cnblogs.com/q/67382/#a_150210 //添 ...

  4. MySQL Create Table创建表

    表的创建命令需要: 表的名称 字段名称 定义每个字段(类型.长度等) 语法 下面是通用的SQL语法用来创建MySQL表: CREATE TABLE table_name (column_name co ...

  5. css之滚动条

    overflow:auto; overflow-x:auto; overflow-y:auto;

  6. STL的迭代器和类型萃取

    今天就可以把STL库中迭代器的实现,和类型萃取好好整理一下了 迭代器的设计思维是STL的关键所在,在STL的实际运用和泛型思维,迭代器都扮演着十分重要的角色,STL力求把数据容器和算法的概念分开来,于 ...

  7. 17.iOS App设置icon,启动图,App名称的方法

    icon:选择Assets-->AppIcon-->将各种尺寸的icon拖拽到相应的框中. APP名称:选择info-->Bundle name,修改APP名字. 启动图: 首先点击 ...

  8. oracle数据库下的关系(库,实例,用户,表)

    一.数据库数据库顾名思义是数据的集合,而Oracle则是管理这些数据集合的软件系统,它是一个对象关系型的数据库管理系统.     二.表空间表空间是Oracle对物理数据库上相关数据的逻辑映射.一个数 ...

  9. window对象常用方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. redis客户端连接异常

    本文参考:http://mdba.cn/2015/04/02/redistwemproxy-%e5%ae%a2%e6%88%b7%e7%ab%af%e8%bf%9e%e6%8e%a5%e5%bc%82 ...