IIS7 Application Pool Integrate Mode 和 Classic Mode 的区别
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 的区别的更多相关文章
- 如何在Windows 2003+IIS6的环境下找回应用程序池(application pool)中的服务账号密码
上一篇文章说了说如何在Win2008+iis7中取出SharePoint管理账号密码的方法. 整个过程简单的讲,就是通过使用要找回密码的账号用来在SharePoint中创建一个临时的Web Appli ...
- Application Pool Identities
Whether you are running your site on your own server or in the cloud, security must be at the top of ...
- 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 ...
- 排错技能:任务管理器中追踪某w3wp.exe是哪个IIS站点的application pool
如果Windows的任务管理器中发现某个w3wp.exe占用了100%CPU,那我们就要揪出这是那个网站的application pool在作怪, 首先,每个站点一定要单独使用各自的applicati ...
- 批量启动application pool
在powershell中执行 Get-ChildItem IIS:\AppPools | where {$_.state -eq "Stopped"} | Start-WebApp ...
- SharePoint Error occurred in deployment step 'Recycle IIS Application Pool': 0x80070005:拒绝访问
错误出现的前提:多个用户在一台机器上做开发,使用非系统管理员账号时会出现,因为一般创建网站集时指定管理员为系统管理员: 使用 Visual Studio 2010 部署时报错:Error occurr ...
- 应用程序池和应用程序域的区别(Difference between application pool and application domain)
来自StackOverFlow: http://stackoverflow.com/questions/8486335/difference-between-an-application-domai ...
- Recycling Settings for an Application Pool <recycling>
Overview The <recycling> element contains configuration settings that control the conditions t ...
- IIS application pool access desktop denied
https://stackoverflow.com/questions/5437723/iis-apppoolidentity-and-file-system-write-access-permiss ...
随机推荐
- ITextSharp导出PDF表格和图片(C#)
文章主要介绍使用ITextSharp导出PDF表格和图片的简单操作说明,以下为ITextSharp.dll下载链接 分享链接:http://pan.baidu.com/s/1nuc6glj 密码:3g ...
- NC 单据保存时间过长,判断数据库锁表解决办法
SELECT s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s WHERE l.object_id = o.o ...
- CentOS 6.5升级Python和安装IPython
<转自:http://www.noanylove.com/2014/10/centos-6-5-sheng-ji-python-he-an-zhuang-ipython/>自己常用.以做备 ...
- tfs 删除工作区
公司员工离职后,有部分文件迁出,有没有tfs密码的情况下,考虑删除工作区,在网上找到方法实践有效,在次记录下. 在命令提示行下进入 “...\Microsoft Visual Studio 8\Com ...
- UIMenuController 弹出菜单框
弹出菜单框 UIMenuItem *menuItem1 = [[UIMenuItem alloc] initWithTitle:@"删除" action:@selector(del ...
- SEO和SEM的区别
SEO是属于SEM的一部分,SEO和SEM最主要的是最终目标的不同: SEO主要是为了关键词的排名.网站的流量.网站的结构.搜索引擎中页面收录的数据. SEM是通过SEO技术基础上扩展为搜索引擎中所带 ...
- STL 跨模块 调用 异常 解决
本文为转载别人的,以作收藏之用 百度了一天,现在把结论放上边: 1.不要用STL(std::string属于STL)来跨模块传输数据,例如:dll(so)之间,dll(so)和exe(elf)之间. ...
- Ubuntu下deb包的安装方法 (zz)
Ubuntu下deb包的安装方法 分类: Ubuntu10使用技巧 2010-10-11 23:49 42969人阅读 评论(3) 收藏 举报 ubuntudebdebianlinux deb是deb ...
- 17.iOS App设置icon,启动图,App名称的方法
icon:选择Assets-->AppIcon-->将各种尺寸的icon拖拽到相应的框中. APP名称:选择info-->Bundle name,修改APP名字. 启动图: 首先点击 ...
- LocalDB-排序规则:中文乱码; DefaultLanguage
DefaultLanguage: Set Language 简体中文|us_english SELECT SYSTEM_USER Login SP_DefaultLanguage #Login, 简体 ...