• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> 服务器 >> Web服务器 >> IIS >> 详细内容
 

推荐文章

  • Windows Xp下配置IIS的简单教程
  • IIS服务器完全配置图解教程
  • Vista系统配置IIS7+Asp+Access
  • win2003 服务器设置 完全版
  • 新手配置IIS视频教程
  • Windows Server 2008 IIS 7.0下配置php,MySQL,Zend,ph..
 
 

热点文章

  • Windows Xp下配置IIS的简单教程
  • IIS设置方法
  • IIS服务器完全配置图解教程
  • Xp安装配置IIS
  • Vista系统配置IIS7+Asp+Access
  • 装IIS,但是"添加/删除Windows组件"里没有Internet信息..
  • IIS设置初级教程,自己动手配置一个ASP调试环境
  • win2003 服务器设置 完全版
  • IIS7+PHP+MySQL架设WordPress
  • IIS伪静态URL Rewrite设置方法!
  • 关于IIS7 如何显示、返回详细HTTP500错误信息
  • 新手配置IIS视频教程
 
 

相关文章

  • IIS7 的新功能 - URL重写、应用程序路由和负载均衡以及..
  • 关于IIS7 如何显示、返回详细HTTP500错误信息
  • IIS 7管理API——Microsoft.Web.Administration介绍
  • 图解Windows Vista中IIS7的安装及配置ASP+Access环境
  • The IIS7 Difference(IIS新增特性)
  • Vista系统配置IIS7+Asp+Access
  • 微软的下一代Web服务器IIS7细节披露!
  • Windows Vista中IIS7的安装及配置ASP+Access环境
 
 

百度搜索

 
 

模块化的 IIS7 与 .NET 能力整合

  • 阅览次数:
  • 文章来源: microsoft
  • 原文作者: 赖荣枢
  • 整理日期: 2007-03-13
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

 
作者: 赖荣枢
http://www.goodman-lai.idv.tw
IIS(Internet Information Services)不仅是 Windows Server 的重要功能,Windows 客户端操作系统也有这项功能,而 Windows Vista 以及项目代号为 "Longhorn" 的 Windows Server,也都会内建最新版本的 IIS,也就是 IIS 7。微软日前释出的 Windows Vista RC 1,就内建了 IIS 7;虽然 Windows Vista 的目的并非作为商用的 Web 执行平台,但若您有机会取得 Windows Vista RC1,除了测试 Windows Vista 的最新功能之外,不妨也利用机会预先体验最新版本的 IIS。
这篇文章除了将以最近释出的 Windows Vista RC1 呈现 IIS 7 的模块化功能,也将简述 IIS 各个版本;这篇文章的议题包含了:
本页内容
IIS 简史
Windows Vista 版本与 IIS 7 功能
模块化的 IIS 7
充分整合 .NET 能力的 IIS 7
结语
IIS 简史
IIS 1.0 和 IIS 2.0 是随着 Windows NT 3.51 Service Pack 3 和 Windows NT 4.0 释出,这时候网站应用程序的开发方式是 CGI(Common Gateway Interface)和 ISAPI(Internet Server Application Programming Interface);大幅简化网站应用程序开发的 ASP(Active Server Pages)1.0 是由 IIS 3.0 开始提供(1996 年 12 月),而 IIS 3.0 则是内建在 Windows NT 4.0 Service Pack 3。
两年左右的时间,IIS 已经藉由 Windows NT 4.0 Option Pack 推出了 4.0(1997 年九月),而 IIS 4.0 提供的是 ASP 2.0 的技术(并且也不再提供 Gopher 协议的功能)。IIS 5.0 与上个版本的间隔时间较长,是随着 Windows 2000 推出(2000 年 11 月),而 Windows XP Professional 则内建了仅限十个同时联机,并且只允许建置一个网站的 IIS 5.1(2001 年十月);IIS 5.0 和 5.1 都提供了 ASP 3.0。
2003 年四月推出的 Windows Server 2003(以及 2005 年四月推出的 Windows XP Professional x64 Edition)内建了 IIS 6.0,虽然还是可以执行「传统」的 ASP 3.0 程序,但 ASP.NET 1.0 才是最大的特点。ASP.NET 是微软 .NET 平台的重要功能之一,.NET 1.0 是 2002 年一月推出,而微软也在 2005 年 11 月推出 .NET 2.0,其中也包含了 ASP.NET 2.0 技术。
除了 Windows XP Professional,上述提供 IIS 的操作系统都仅限于伺服端的 Windows,如果是 Windows 95/98/98SE 等客户端操作系统想要拥有 Web 网站功能,微软提供的解决方案是PWS(Personal Web Server);PWS 可视为功能简化、适用于开发测试的 Windows 免费 Web 伺服软件,但后来也不再继续发展。而 Windows XP Home 则是都不支持 IIS 或 PWS 的 Windows 操作系统。
早期可以免费下载、安装的 PWS,以及 Windows XP Professional 内建的 IIS 5.1,是微软原本提供作为个人开发测试或学习的 Windows Web 伺服软件,后来微软也另外为 ASP.NET 1.x 提供了适用于个人开发测试或学习并且能免费下载、安装的简易 Web 伺服软件,也就是 ASP.NET Cassini Web Server,而此软件后续的 ASP.NET 2.0 版本也内建于 Visual Studio 2005。
回到页首
Windows Vista 版本与 IIS 7 功能
不过合计有六个版本 Windows Vista,也并非每个版本都提供了 Web 服务器功能,甚至不同的 Windows Vista 版本,所提供 IIS 7 功能也有差别。首先,基础且入门的 Windows Vista Starter 和 Home Editions 版本并不提供 IIS 7 功能。再者,Windows Vista Home Premium Edition 虽然内建 IIS 7,但仅包括 Web 网站的执行功能,不包含 FTP 伺服端、Web 验证及授权、远程管理等功能。Windows Vista 众版本当中,IIS 7 功能最完整的是 Business、Enterprise、Ultimate Editions 等版本,但若相较于 Windows Server Longhorn 的 IIS 7,依然缺少远程管理的功能。
回到页首
模块化的 IIS 7
重新模块化设计的 IIS 7 可以依照功能安装、执行伺服端里的模块,重新架构之后的模块化设计,让 IIS 7 更能弹性的执行与扩充。具体而言,首见的优点就是降低服务器资源的耗用(例如内存和处理器),并且提升 Web 伺服端的效能。其次的优点,是能避免不必要的攻击,而且也能自订特定目的或功能的专属伺服端。
Windows Vista RC1 预设并不会安装 IIS 7,而若透过控制台的功能安装 IIS 7,就会发现 IIS 7 的安装选项变得非常细微,这些安装选项先分成 FTP 服务、Web 管理工具、Web 服务等三大类,其中的 Web 服务又分成 Application Development Features、Common Help Features、Health and Diagnostics、Performance Features、Security 等五类,这五类又再分成 28 项。例如您可以利用 Application Development Features 决定 IIS 7 所能执行的 Web 程序类型(如图一,共七种;图二列出了 IIS 7 完整的组件);而这些类型又互有相依性,例如若选取 ASP.NET,安装程序会自动再选取 .NET Extensibility、ISAPI Extensions、ISAPI Filters 等三种类型。

图一:Application Development Features 包含了七种 IIS 7 所能执行的 Web 程序类型
IIS 7 的模块可以是 Win32 DLL 原生模块,也可以是 .NET 2.0 组件管理模块(managed module),将这些模块加入伺服端,就如同以堆积木的方式扩充伺服端或网站应用程序(Web application)的功能,而 IIS 7 所有的模块也都能移除或更换;有两种 API 可以让开发人员编写 IIS 7 模块:C++ API 和 ASP.NET 2.0 API,以前者编写的 IIS 7 模块类似 ISAPI filter 或 ISAPI extension。
圖二:IIS 7 完整的元件(圖片來源:www.iis.net)
图二:IIS 7 完整的组件(图片来源:www.iis.net)
IIS 7 提供了两种管理模块的方式,一是利用 MMC 图形模式的管理工具(如图三),另一种方式是命令列工具 APPCMD.EXE(位于 %WinDir%\System32\InetSrv 目录,而且 Windows Vista RC1 命令列环境的 Path 变量内预设并没有上述目录)。
圖三:IIS 7 的 MMC 圖形模式管理工具
图三:IIS 7 的 MMC 图形模式管理工具
回到页首
充分整合 .NET 能力的 IIS 7
IIS 7 不只能像 IIS 6 执行 ASP.NET 2.0 网站应用程序,而且也比之前的 IIS 版本更充分整合了 .NET 的能力;例如之前所述,IIS 7 能执行 ASP.NET 2.0 API 所开发的模块,即为例证之一。而 IIS 7 之所以能与 .NET 充分整合,是因为架构的改变。
在之前的 IIS,ASP.NET 是以 IIS ISAPI extension 的方式实作而外加到 IIS,其实包括 ASP 以及 PHP,也都以相同的方式实作(PHP 在 IIS 采用了两种实作方式,除了 IIS ISAPI extension 的方式,也包括了 CGI 的方式,系统管理者能选择 PHP 程序的执行方式),因此客户端对 IIS 的 HTTP 要求会先经由 IIS 处理,然后 IIS 根据要求的内容类型,如果是 HTML 静态网页就由 IIS 自行处理,如果不是,就根据要求的内容类型,分派给各自的 IIS ISAPI extension;如果要求的内容类型是 ASP.NET,就分派给负责处理 ASP.NET 的 IIS ISAPI extension,也就是 aspnet_isapi.dll。图四是这个架构的示意图。
圖四:IIS 6 的執行架構(圖片來源:www.iis.net)
图四:IIS 6 的执行架构(图片来源:www.iis.net)
而 IIS 7 完全整合 .NET 之后,架构的处理顺序有了很大的不同(如图五),最主要的原因就是 ASP.NET 从 IIS 外挂程序(ISAPI extension)的角色,进入了 IIS 核心,而且也能以 ASP.NET 模块负责处理 IIS 7 的诸多类型要求。这些 ASP.NET 模块不只能处理 ASP.NET 网页程序,也能处理其它如 ASP 程序、PHP 程序或静态 HTML 网页,也因为 ASP.NET 的诸多功能已经成为 IIS 7 的一部份,因此 ASP 程序、PHP 程序或静态 HTML 网页等类型的要求,也能使用像是窗体认证(Forms Authentication)或输出快取(Output Cache)等 ASP.NET 2.0 的功能(但须修改 IIS 7 的设定值)。也因为 IIS 7 允许自行以 ASP.NET API 开发并加入模块,因此 ASP.NET 网页开发人员将更容易扩充 IIS 7 和网站应用程序的功能,甚至能自行以 .NET 编写管理 IIS 7 的程序(例如以程控 IIS 7 以建置网站或虚拟目录)。
圖五:IIS 7 的執行架構(圖片來源:www.iis.net)
图五:IIS 7 的执行架构(图片来源:www.iis.net)
虽然 IIS 7 提供了新的 .NET 整合模式,但还是保留了传统的 ASP.NET 执行模式,因为某些 ASP.NET 网站应用程序在新的 .NET 整合模式执行,可能会有兼容性的问题,如果真的发生,除了找出、修改造成兼容性的问题,也可以让 ASP.NET 网站应用程序继续以传统的 ASP.NET 模式执行。而不论新的 .NET 整合模式,或者传统的 ASP.NET 执行模式,都是 IIS 7 应用程序集区的 Managed pipeline mode 设定值,因此,若要让 ASP.NET 网站应用程序以传统的 ASP.NET 模式执行,就是将 ASP.NET 网站应用程序放到属性为传统 ASP.NET 模式的应用程序集区。
Windows Vista RC1 的 IIS 7 预设建了两个应用程序集区,分别是 Class .NET AppPool 和 DefaultAppPool,前者是传统 ASP.NET 模式,后者是新的 .NET 整合模式。如果要让 ASP.NET 网站应用程序继续以传统的 ASP.NET 模式执行,就是将 ASP.NET 网站应用程序指定给传统的 ASP.NET 模式的应用程序集区,例如 Class .NET AppPool(如图六),或者是您自建的传统 ASP.NET 模式应用程序集区。

圖六:指定網站應用程式的應用程式集區
图六:指定网站应用程序的应用程序集区

回到页首
结束语
虽然 IIS 已经是 Windows 平台最成功的 Web 伺服软件,不过对现今的因特网应用而言,Web伺服软件必须朝向网站应用程序的执行平台发展,并且必须提供稳定、安全、易于管理的执行环境。微软在推出 IIS 6.0 的时候,为 IIS 6.0 加入了应用程序集区的技术,让网站应用程序更稳定、更有效率。而微软除了重新调整 IIS 7 的架构,让 IIS 7 充分的模块化,又将 .NET 技术整合到新的 IIS 7,让 ASP.NET 不只能开发网站应用程序,也能开发 IIS 7 模块,等于是多开辟了一种扩充 IIS 7 的方法。
参考数据:
•
IIS7 Module Overview
•
ASP.NET Integration with IIS
•
IIS7 Setup Overview
 

上一篇:PHP使用zlib扩展实现页面GZIP压缩输出
下一篇:构建支持Master/Slave读写分离的数据库操作类
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号