搜搜吧

搜搜吧 门户 教程 服务器 查看内容

IIS7对于IIS6的改进及配置系统的差异

2017-11-3 17:16| 发布者: 优化大师| 查看: 607| 评论: 0

摘要: 在IIS 6中asp.net的运行机制文章中,我们大致了解了HTTP请求在IIS6中的流转以及asp.net在IIS6中是如何运行的。但比较,IIS6毕竟是10年前的产物,尽管现在还有很多asp.net应用是部署在win2003+iis6平台下,但我相信,I ...

IIS 6中asp.net的运行机制文章中,我们大致了解了HTTP请求在IIS6中的流转以及asp.net在IIS6中是如何运行的。但比较,IIS6毕竟是10年前的产物,尽管现在还有很多asp.net应用是部署在win2003+iis6平台下,但我相信,IIS7+会越来越受到人们的喜爱。就我自己而言,我是用上了win7才开始使用IIS7.5的,随着不断使用,我觉得IIS7+是到目前为止用得最爽的一个版本。

  据说IIS7对于IIS6有很多改进的地方(例如模块化,更好的安全性和扩展性),但最令我印象深刻的是两点改变:

  一:IIS7对asp.net的集成。

  二:IIS7的配置系统(相对于IIS6)的改变。

  IIS7对asp.net的集成

  在IIS6中,asp.net是以ISAPI扩展(isapi extension)的形式被运行的,即aspnet_isapi.dll,某程度上asp.net对于IIS6只是一个插件,asp.net之于iis6就像asp之于iis6或者php之于iis6一样,都是ISAPI扩展。这样并不能最大限度地发挥asp.net的功能。例如正如我上次那篇博客使用http module 对url进行重写的尝试中遇到的问题:我需要截获客户端发来的请求,并对请求进行重写。在IIS6中,请求的截获动作只能被限制在IIS加载aspnet_isapi.dll后,也就是说:如果该请求不是明确针对asp.net资源的请求(比如这个请求只是一个静态文件的请求,如www.somenet.com/index.html或者www.somenet.com/img1.jpg),我们就不能在代码中编写截获请求的逻辑,因为IIS6是根据URL的后缀来映射并加载对应的isapi的,如果一个请求的url是:www.somenet.com/index.aspx,根据".aspx"这个后缀,IIS6可以得知这个请求是针对asp.net资源的,应该加载aspnet_isapi.dll创建.net运行时并运行asp.net页面的代码,但很明显,诸如"www.somenet.com/index.html"这种请求,IIS6通常认为不是对asp.net资源的请求,因此不会加载aspnet_isapi.dll来运行asp.net,我们即使在asp.net页面中编写了拦截请求的代码,也不会被执行。当然,这里我说通常是有原因的,因为我们可以在IIS6中添加通配符程序映射的方式,或者在web.config中对某种请求手动添加处理程序的方式,来迫使IIS6为非asp.net资源类型的请求加载aspnet_isapi.dll。IIS6中对请求的执行流程如下

  但一切在IIS7中变得很不同。在IIS7中,asp.net不再是以一个isapi的形式存在于IIS中,而是集成到IIS核心中。先看一下IIS7中请求的处理流程:

  IIS7中对asp.net的请求不再是分两条处理管道,而是将asp.net和IIS集成起来,这样做的好处有很多,包括统一了请求验证工作,加强了asp.net对于请求的控制能力等等。在IIS7中,asp.net不再像IIS6一样只限定于aspnet_isapi.dll中,而是被解放出来,从IIS接收到HTTP请求开始,即进入asp.net的控制范围,as.net可以存在于一个请求在IIS中各个处理阶段。甚至可以为部署在IIS7中的PHP应用提供基于asp.net的验证身份验证功能(参考:http://msdn.microsoft.com/zh-cn/magazine/cc135973.aspx)。

 

  IIS7的配置系统相对于IIS6的改变

   IIS7中,另一个非常大的改进就是它的配置系统。在IIS6中,配置信息存储在metabase.xml文件中(在%windir%\system32\inetsrv文件夹中),而IIS7里面,配置信息被存储在applicationHost.config中(在%windir%\system32\inetsrv\config文件夹中)。这可不是简单的文件重命名,而是对IIS配置系统的大规模重构。事实上,如果接触过IIS6中的metabase.xml,就知道这个文件的配置信息是非常难于管理的。里面存在大量的基于内存结构的配置信息,而且组织结构对于我们来说也不是那么友好,难以阅读。而IIS7对整个配置系统作了改进,以一种我们(尤其是.net开发人员)非常熟悉的结构来存储配置信息(看上去类似于web.config或者app.config文件)。IIS团队对IIS7配置系统作出如此大规模改变是为了改善提高IIS7的性能,伸缩性以及更易于管理。

  IIS6与IIS7在配置系统上的对比:

 特点 IIS6 IIS7 对比
 外部代理配置 在IIS6中,对于IIS本身的配置是保存在metabase.xml中,只能被拥有系统管理员权限的用户修改。 IIS7的配置信息保存在applicationHost.config中,但也可以在web.config里面对IIS进行配置。 
 组织结构 metabase.xml中的配置属性在组织上较为零散。 applicationHost.config是类似于web.config风格的组织结构配置方式,每个配置节和元素都以一种更友好的结构呈现。 配置条目更加符合逻辑,配置文件更容易阅读和管理。
 配置的同步问题 IIS6的配置是基于内存的,同时也呈现在metabase.xml文件,有可能出现同步问题,即:内存中的配置值与metabase.xml所呈现的不同 IIS7的配置完全是基于配置文件的。 
 对xml schema扩展 很难对metabase.xml进行扩展 基于IIS_Schema.xml,更容易对配置文件进行扩展定制。 

搜搜吧社区温馨提示:
1、在门户或论坛里发表的文章仅代表作者本人的观点,版权都归原作者版权所有与本网站搜搜吧立场无关。
2、门户或论坛的所有内容都不保证准确性,有效性,真实性,时间性。阅读本站内容请自行核对发布者的真实性,本站不承担连带责任。
3、注册会员通过任何手段和方法针对本站门户或论坛进行破坏,我们有权对其行为作出处理,并保留进一步追究其责任的权利。
4、注册会员以及游客请遵守地方法律,请您在发表言论时注意您的言行举止,请勿发表低俗以及违反国家地方法律的文章,违者必将追究法律责任!
5、请勿发表侮辱或者诽谤他人,侵害他人合法权益的、含有军事、色情、药品、赌博、走私、法律、行政法规禁止的其他内容的、违者直接上报公安!
6、本站搜搜吧与全国各地公安机关网监部门以及工商管理部门共同监管,严厉打击禁止从事违法犯罪,损害国家利益的一切非法活动,全网站24小时监控!
7、本站所有帖内以及门户发布的图片均来自互联网,图片设计版权都归原作者版权所有,图片都由发布者自行发布,本站不承担任何盗版的连带责任。
8、本站所有的内容均来自互联网以及第三方作者自由发布、本站不承担任何的法律责任、若有侵权请来信告知,我们在收到举报后的一个工作日内立即删除、
9、搜搜吧删帖,投诉,举报,侵权,账号解封唯一指定快速受理频道,请直接发送邮件到 [email protected] 一个工作日内核实并邮件通知立即删除
版权政策说明:
搜搜吧(www.soso021.com)十分重视网络版权及其他知识产权的保护,针对网络侵权采取如下版权政策:
1、本站有理由相信网友侵犯任何人的版权或作品,(图文,文字,下载,视频,非法传播),本站有权不事先通知即删除涉嫌侵权的作品和内容!
2、本站将采取必要的网络技术手段,确认为侵权作品或内容的用户有权进行警告、屏蔽、删除的行为,尽可能的防止侵权行为的发生!
3、如若您的作品或内容在搜搜吧被侵权,请及时联系我们并提供能证明版权所有的物品,我们将及时进行处理,给您造成不便,敬请谅解!

鲜花

握手

雷人

路过

鸡蛋

资讯分类

推荐图文

文章排行

Powered by soso021 X3.2© 2013-2018 搜搜吧社区 Archiver|手机版|小黑屋|地图|关于我们|soso吧社区官网

GMT+8, 2018-6-25 08:31 , Processed in 0.078125 second(s), 19 queries , Gzip On.

返回顶部