ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:220.70KB ,
资源ID:1314743      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1314743.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(IIS7 探索用于 Windows Vista 的 Web 服务器和更多内容.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

IIS7 探索用于 Windows Vista 的 Web 服务器和更多内容.docx

1、IIS7 探索用于 Windows Vista 的 Web 服务器和更多内容我经常听到 Microsoft 内部和外部的人将新的 IIS 7.0 Web 服务器称为 Microsoft 在过去几年中所进行的最重要的开发工作之一。考虑到 Microsoft 最近推出了一系列引人注意的技术,包括 Windows Vista,这个评语具有重要意义!IIS 7.0 的发布时间正好是 Windows NT 4.0 中第一个 IIS 版本发布十周年的纪念日。2001 年,在四个版本之后,IIS 5.0 成为了 Internet 上最流行的 Web 服务器,尽管几个月后它成了臭名昭著的 Code Red 和

2、 Nimbda 蠕虫的攻击对象。IIS 6.0 是在 Windows Server 2003 中发布的,它对服务器进行了重大改写,将重点完全放在改进安全性、可靠性和性能上面。此后,IIS 6.0 已被证明是坚如磐石的 Web 服务器,自从发布后,它获得了高可靠性和高安全性记录,而且只有一条关键安全公告(不是可远程利用的)。在本文中,我要利用这个机会向开发人员和管理员介绍下一代 IIS 7.0 Web 服务器之所以有如此大的差异的主要原因,并使您在使用它的很多新功能时有个良好的开始。IIS 7.0 的远景是要继承 IIS 6.0 基本代码的速度、可靠性和安全性,并将它演进成高度可扩展和可管理的

3、Web 服务器平台,具备足以运行未来 Web 应用程序的强大功能。最终成为最具前景的 Microsoft Web 服务器,并带来在 IIS 历史上最大程度的体系结构改进。IIS 7.0 的核心是一个完全模块化的 Web 服务器,它由 40 多项功能组成,这些功能可以组合成一个针对在应用程序拓扑中的所需角色经过优化的小型 Web 服务器。这些功能基于一个新的可扩展层,这个层允许开发人员以本机代码或者用 Microsoft .NET Framework 来扩展或替换服务器的几乎任何方面。IIS 7.0 在整个运行库、管理和操作功能方面都提供了可扩展性,以帮助您为特定需要构建端到端解决方案。在核心平

4、台的基础上,IIS 7.0 解决了与服务器的可管理性和操作相关的很多问题。它采用全新的配置系统,能够对站点进行完全委派的管理,并最终使 Web 应用程序的 xcopy 部署成为现实。新的管理 API 和诊断功能使服务器的部署、管理和故障排除明显变得比以前更容易、更方便。但在下一个 Windows Server 版本(代号为“Longhorn”)即将最后发布之前,为什么应当开始考虑 IIS 这个服务器应用程序呢?现在开始考虑采用它之所以重要,是因为 Windows Vista 将附带相同的全功能 IIS 7.0 程序,这些程序预计将在 Windows Server“Longhorn”中发布。这意

5、味着您可以立即利用新的 IIS 7.0 功能构建您的个人网站,并将它承载在 Windows Vista 上。此外,当 Windows Server“Longhorn”发布时您将把生产 Web 应用程序以及 Web 服务器基础结构部署到相同的 IIS 平台上,就这一点来说,您可以率先开始开发和测试它们。有兴趣吗?让我们深入讨论细节。模块化 Web 服务器IIS 7.0 将 Web 服务器分成一个轻型服务器核心,以及可以插入此核心中的 40 多个功能模块。这些模块(比如允许下载静态 Web 内容的 StaticFileModule,或者支持集成的 NTLM 身份验证的 WindowsAuthMod

6、ule)可以单独安装在服务器上,以提供您需要的具体功能。可以在任何时候从服务器上完全卸载这些模块(请参阅图 1),或为不需要它们的特定应用程序而专门禁用它们。这将帮助服务器管理员快速地部署小型服务器,同时大大减少受攻击可能性,并通过只执行所需代码极大地提高性能。图 1只使用需要的功能(单击该图像获得较大视图)组件化体系结构是 IIS 7.0 的关键属性,它可以降低安全风险,并最大程度减少安装修补程序的必要。它还支持特殊化的服务器部署,这样的部署可以将选择 IIS 功能和自定义组件组合起来,针对应用程序拓扑中的特定服务器角色对它们进行优化,例如,反向代理和缓存服务器、HTTP 协议负载平衡器、或

7、 SSL 和安全 sentinel 服务器。IIS 7.0 所附带的所有服务器功能都基于新的公用可扩展 API。作为开发人员,您可以用您自己的功能替换任何现有服务器功能,也可以构建新的模块以添加到 IIS 7.0 功能集中。您是否希望用自定义的身份验证模块替换内置身份验证机制,或者提供新形式的响应压缩?请继续。新的可扩展 API 是对以前的 ISAPI 可扩展模型的根本改进,使您能够更灵活、更轻松增强服务器。几乎服务器的每个方面(从核心服务器直到配置、管理和诊断)都提供了可扩展性,使您可以根据自己的需要扩展和裁减服务器。本文稍后将提供有关可扩展性的更多介绍。经过简化的部署和配置以前的 IIS

8、版本所采用的集中化配置存储(人们亲切称其为元数据库)已经一去不复返了。IIS 7.0 具有新的委派配置系统,它基于分布式 XML 配置文件的层次结构。此层次结构由全局 applicationHost.config 文件(该文件包含服务器级别的配置默认设置)以及应用程序的目录结构中的分布式 web.config 文件组成。这些文件与 ASP.NET 应用程序框架用于以可移植方式存储应用程序设置的 web.config 文件是相同的文件。因而可以使用干净和强大结构化的 XML 指令,并排地存储 IIS 和 ASP.NET 配置。下面是示例: 复制代码 过去,必须在机器级的元数据库存储库中显式配置

9、IIS 应用程序设置,然后应用程序才能正常工作。而使用分布式 web.config 文件,应用程序则将必需的服务器配置封装在其目录结构中。这就大大简化了部署,从而可以将独立的应用程序直接复制到目标服务器的应用程序目录中,从而以所需设置立即启动和运行。新的配置系统还为服务器管理员提供了全面控制权,允许他们将某些配置选项委派给应用程序,同时由于安全或业务原因保持对其他选项的控制。这样,托管服务器上的应用程序可以在其应用程序中直接设置必需的配置,而不需要求助于服务器管理员或使用外部配置面板。在 IIS 7.0 中,配置系统是完全可扩展的。新模块可以添加它们自己的配置架构,从而使应用程序能够与 IIS

10、 和 ASP.NET 配置一起并排配置其功能: 复制代码 自定义配置部分使用了与 IIS 7.0 功能的配置相同的配置架构,从而利用了强大的类型属性值、集合语法和分层重写及锁定语义。IIS 7.0 继续支持现有安装代码使用管理基础对象 (ABO) API 向原有元数据库写入数据,或使用那些使用更高级别的 Active Directory 服务接口 (ADSI) 和 Windows Management Instrumentation (WMI) 对象的脚本来配置 IIS。它通过提供模拟 ABO API 的兼容层来实现这样的支持(所有其他原有配置 API 均基于该兼容层),从而允许上述脚本就像在

11、以前版本的 IIS 中一样读取和更改配置。(有关元数据库兼容性的详细信息,请参阅本文后面的“经过改进的性能”和“向后兼容”两节。)虽然新的结构化 XML 配置格式使您更容易在您喜欢的文本编辑器中处理配置,但 IIS 还是为管理员提供了很多管理工具和 API,以简化服务器管理,并支持自动配置和部署。经过改进的管理IIS 7.0 提供了一组丰富的管理功能,使得用户可以在广泛的方案中管理服务器。新的图形化 IIS 管理器管理工具取代了 InetMgr.exe MMC 管理单元,借助其基于任务的管理界面,使手动服务器管理变得非常简单(参见图 2)。图 2IIS 管理器提供了图形化管理工具(单击该图像获

12、得较大视图)IIS 管理器允许您管理大多数 IIS 7.0 功能,并监视服务器的操作。该工具支持通过防火墙友好的 HTTP/SSL 连接进行远程管理,并且可以选择同时支持用于身份验证的基于 Windows 的凭据和其他凭据。此外,该工具支持委派管理,从而让应用程序所有者能够远程管理其应用程序,而不必对服务器计算机具有管理访问权。借助此功能,托管服务的用户可以在其家用桌面机上运行管理工具,并远程连接以管理其在托管服务器上的应用程序。当然,服务器管理员对可以将哪些管理功能委派给应用程序所有者拥有完全控制权。最后,该管理工具是完全可扩展的,它基于配置系统可扩展性,允许将自定义管理 UI 添加到工具中

13、。在 中可以详细了解 IIS 管理器工具以及如何添加自己的管理插件。为了获得更灵活的命令行管理,IIS 7.0 提供了 appcmd.exe 命令行工具(参见图 3)。此工具提供了一组全面的管理功能和比 UI 更好的批量操作支持。通过这个功能强大的实用程序,可以轻松从命令提示符读取和写入配置、访问站点和应用程序池状态信息以及执行几乎任何其他管理任务。图 3IIS 7.0 的 Appcmd.exe 命令行管理(单击该图像获得较大视图)利用 appcmd.exe,可以创建和配置站点、应用程序、应用程序池和虚拟目录。通过它,可以启动和停止站点、回收应用程序池、列出正在运行的工作进程、检查当前正在执行

14、的请求以及搜索失败事件请求缓冲 (FREB) 跟踪日志。还可以搜索、编辑、导出和导入 IIS 及 ASP.NET 配置数据。该工具旨在使您可以灵活搜索受支持的服务器对象,例如,使您能够快速找到有特定设置集的站点,或已停止的应用程序池。执行搜索时,可以对任何对象的属性使用任意数量的条件,包括使用数字范围和简单通配符字符串匹配。Appcmd 还支持类似 Windows PowerShell中出现的链接操作,从而允许从单个命令行一起执行针对一组相关对象的多个操作。例如,您可以用一条命令查找和回收承载某个站点的应用程序的所有应用程序池。若要了解如何用 AppCmd 管理 IIS,请参阅 .NET Fr

15、amework 和脚本除了用 IIS 管理器或 appcmd.exe 命令行工具进行手动服务器管理以外,IIS 7.0 还为编程管理提供了丰富的选项。首先,可以利用 Microsoft.Web.Administration API 通过 .NET 应用程序管理服务器。也可以使用新的 COM API 直接管理 IIS 配置系统,或从诸如 ASP 或 Windows Script Host (WSH) 这样的脚本环境访问它。还有新的 WMI 提供程序,以及通过元数据库兼容层实现的对原有 WMI 和 ADSI 提供程序的支持。Microsoft.Web.Administration 是新的 .NET

16、 管理 API,它使托管代码应用程序可以轻松地以编程方式设置 IIS 站点和应用程序、访问重要状态和诊断信息以及按其他方式配置服务器。通过让基于 .NET Framework 的应用程序轻松访问 IIS 配置及状态信息,为编写基于 .NET 的安装和管理应用程序,甚至是直接从 ASP.NET 页执行管理任务,提供了可能。作为示例,图 4 显示了一个小型 C# 程序,该程序使用 Microsoft.Web.Administration 从命令行新建网站。Figure4用 Microsoft.Web.Administration 设置站点 复制代码 using System;using Micro

17、soft.Web.Administration;class CreateASite static void Main(string args) ServerManager serverManager = new ServerManager(); Site mySite = serverManager.Sites.Add( MySite, d:inetpubmysite, 8080); mySite.ServerAutoStart = true; serverManager.CommitChanges(); Microsoft.Web.Administration 使 IIS 操作和配置任务能够

18、直接在您选择的支持 .NET 语言的应用程序内部轻松完成。它还使您可以轻松访问有关服务器的运行库状态信息,例如,正在运行的工作进程或当前正在执行的请求。Microsoft.Web.Administration API 是访问自定义 .NET 服务器模块内部的自定义配置和 IIS 管理器工具的 UI 插件的基础。有关端到端服务器包的示例,包括用于增强 Web 服务器和相关配置及管理组件的图像版权处理程序,请参阅 在 Windows Server“Longhorn”时间范围内,IIS 团队将为添加自定义管理对象或扩展现有管理对象而创建统一的可扩展模型,这些模型将使自定义管理功能通过不同管理功能(包

19、括脚本和 Microsoft.Web.Administration API)自动公开。当您无法添加或扩展 Windows Vista 中的管理对象时,可以使用 Microsoft.Web.Administration 和其他 API,就像现有 IIS 配置部分一样,访问和管理自定义配置部分。构建 Web 服务器功能IIS 7.0 使您能够根据您的需要塑造服务器,允许您添加或替换服务器中的任何功能,以便提供您需要的功能。此功能的核心是全新的 Web 服务器可扩展 API,所有现有 IIS 7.0 HTTP 功能都建立在它之上。此 API 是公用的,这意味着您可以实现 IIS 7.0 附带的任何功

20、能。这对 IIS 是第一次,并且是对以前的有限 ISAPI 可扩展模型的根本改进。新的可扩展 API 是一组直观的 C+ 类,这些类定义了 Web 服务器对象模型,并使一个模块能够在 IIS 上提供请求处理服务。这些类被定义在 Windows Vista SDK 中的 inchttpserv.h 头文件中。与 ISAPI 比较,这些 API 功能更强大,而且易用性得到了极大增强。这是如何实现的?首先,新的 API 具有类型安全、良好封装的对象模型。用新的服务器对象模型可以更轻松地进行开发,该模型为所有基本服务器对象和任务提供了专门的接口。包括: 用 IHttpRequest 类检查请求 用 I

21、HttpResponse 类管理响应 从 IHttpServer 类使用有用的实用程序功能 用 IHttpUser 类提供身份验证 用配置 API 访问您的模块的自定义配置部分这些类公开了比以前更多的服务器功能(超过了构建 IIS 附带的所有特性所需的功能),但仍然比松散的类型化 ISAPI 接口更容易使用。开发人员还将受益于经过改进的内存和状态管理模式。大多数 IIS 7.0 服务器 API 都使用服务器托管内存来存储它们返回的数据,而不是像 ISAPI 和大多数现有 Win32 API 那样需要您分配和管理缓冲区。过去,这一直是 ISAPI 开发中最容易产生错误也是最令人厌烦的方面。新的

22、API 还简化了很多复杂的请求处理任务,例如,响应缓冲、身份验证和为客户端准备响应数据。几个月以前,我开始发表我的一系列博客文章,以解释新编程模型中的重大改进和模式。如果您正在考虑针对 IIS 的 C+ 开发,可通过访问以下网址参考相关内容:IIS 7.0 还为扩展服务器提供了完全集成的 .NET Framework API。此外,这与自从 Windows 2000 上的 ASP.NET 1.0 发布以来 ASP.NET 提供的用于构建 ASP.NET 模块和处理程序的 API 是相同的。但两者有区别,人们熟悉的 ASP.NET 模型允许现有 ASP.NET 模块和处理程序继续工作在 IIS

23、7.0 服务器上,但实际上它已完全不同于以前的旧技术。在 IIS 7.0 中,ASP.NET 有两个版本:经典模式和集成模式。经典模式的工作方式与它在以前版本的 IIS 中完全相同。集成模式是新的平台默认设置,它使用全新的引擎来提供与 IIS Web 服务器前所未有的集成。在集成模式下,可以用 ASP.NET API 开发 IIS 7.0 模块,这样的模块可以直接与 Web 服务器集成,并且能够提供用基本 C+ API 即可实现的几乎所有服务。这基本上是两个方面的最佳结合:像成员身份和角色管理这样的 .NET Framework 和 ASP.NET 2.0 应用程序服务所具有的熟悉的接口和方便

24、性,以及以前只对基于 C 的 ISAPI 组件可用的扩展服务器的原始能力。除了能够编写新的 ASP.NET 模块(建立在集成模式的特定优势之上)之外,只需通过在 web.config 文件中更改少量配置选项,就可以使很多原有 ASP.NET 模块变得更为强大。ASP.NET 集成使用 IIS 7.0,ASP.NET 2.0 不止是建立动态应用程序的优秀框架。它还成为扩展 IIS Web 服务器的平台,这使得 ASP.NET 组件成为 IIS 请求处理管道的完整成员。下面介绍它的工作原理。在直到 6.0 版的 IIS 版本中,ASP.NET 均作为独立的应用程序框架连接到 Web 服务器。它负责

25、处理向它注册的请求扩展(通常是 .aspx 和少量其他扩展名),并且它还为这些请求提供强大的功能,如窗体身份验证、响应输出缓存以及其他功能,包括由自定义 ASP.NET 模块提供的服务。因此,只有向 ASP.NET 注册的内容类型才能受益于这些服务。包括 ASP 页、PHP 页、图像和 CGI 应用程序在内的其他类型则无法受益。此外,由于运行库限制,即使对于 ASP.NET 资源,也无法在 ASP.NET 中实现某些 Web 服务器功能。例如,它不能检查传出 HTTP 响应标头集并在发送到客户端之前修改它们。当 ASP.NET 模块在 IIS 7.0 中以集成模式运行时,将与本机 C+ IIS

26、 模块并排运行在统一请求处理管道中(参见图 5)。这意味着现有 ASP.NET 服务(如输出缓存、URL 重写和由自定义 ASP.NET 模块提供的任何其他服务)现在可以应用于任何内容类型。更好的运行库集成还使 ASP.NET 模块能够访问以前不可用的服务器功能,这样,在大多数情况下,不再需要编写本机 IIS 可扩展功能。图 5在 IIS 6.0 和 IIS 7.0 中与 ASP.NET 集成(单击该图像获得较大视图)最后,在集成模式中,ASP.NET 提供了少量新 API,用于公开由于与 IIS 紧密集成而可用的其他功能。其中包括检查所有响应标头(不管是谁生成了响应)的能力,以及将请求执行操

27、作完全重写到另一个 URL 的能力。通常,现有应用程序可以利用集成模式,而不需要使用特定于集成模式的功能的新 ASP.NET 模块。只需通过更改配置,应用程序就可以执行诸如以下操作:使用 ASP.NET 窗体身份验证和 URL 授权通过用户安全机制保护整个网站,或使用 ASP.NET URL 映射在应用程序中重写 URL 等。如需查看利用集成模式阻止 Web Leech 热链接到站点图像的示例,请参阅实现这一点的示例 ASP.NET 模块: ASP.NET 模块来更好地利用它们。如需查看利用现有应用程序的集成模式的详细步骤,请参阅我的文章:经过改进的安全性IIS 7.0 建立在 IIS 6.0

28、 基本代码之上,由于谨慎的编码实践和默认安全的设计原则,这些代码拥有已被证明的安全跟踪记录。在此之上,IIS 7.0 引入了几处体系结构更改,以提供更强大的安全性,还引入了大量功能,以帮助您建立安全的 Web 应用程序。减少受攻击的可能性是设计和部署安全系统的基本原则之一。通过将 IIS 6.0 的默认锁定方法发展到下一级别,在默认情况下 IIS 7.0 安装的功能更少,从而可以锁定服务器的更多项。通过进一步利用服务器的模块化性质来删除所有没用的功能,可以将服务器的受攻击可能性降到最低,从而极大地降低服务器被攻击的风险。如果在服务器上的任何不用组件中发现了漏洞,不需要为了防止遭到攻击或修补漏洞

29、组件,立即让服务器停止工作。这样可以提高应用程序的可用性,并降低修补程序的管理成本。除了核心安全性改进以外,IIS 7.0 还提供了大量安全功能,通过使用它们,可以进一步在服务器上锁定和部署安全应用程序。IIS 一直在为通过身份验证保护应用程序内容提供强大支持。现在,利用 ASP.NET 集成模式,您可以使用流行的 ASP.NET 安全功能(例如,窗体身份验证、成员身份和登录控制)来为整个应用程序提供完整的身份验证和访问控制解决方案。通常,可以在几分钟内完成此设置,而不必编写任何代码。新的 URL 授权功能从 ASP.NET URL 授权功能发展而来,可以用于为整个应用程序配置声明性访问控制规则。利用这些访问规则可以根据用户名和角色允许或拒绝对应用程序中对 URL 的访问。URL 授权与 ASP.NET 2.0 成员身份和角色管理功能无缝集成在一起,可以有效地与 ASP.NET 窗体身份验证和登录控制一起使用,以快速启用应用程序的用户安全机制。新的请求筛选功能提供了功能强大的锁定功能,该功能的一部分可在流行的 URLScan 工具中获得。通过拒绝包含可疑数据的请求、保护敏感资源或强制执行进攻性请求限制,可以用请求筛选功能进一步锁定站点。IIS 7.0 还进行了大量更改,旨在使安全设置的部署和管理更轻松。新的 IIS_IUSR 匿名帐户是内置的,这意味着它不受密码过期的影响,而

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2