IIS 7.0: 使用集成的ASP.NET管道增强应用程序
本文以 IIS 7.0 FastCGI 组件的预发布版为基础。文中包含的所有信息均有可能变更。 本文 讨论: ASP.NET 集成模式 添加用户身份验证 启用对搜索引擎友好的 URL 使 用输出缓存提升性能 本文使用了以下技术:IIS 7.0, .NET Framework 大约一年前,我撰写了 一篇 IIS 7.0 概述,发表在《MSDN® 杂志》上(请参阅 msdn.microsoft.com/msdnmag/issues/07/03/IIS7 上的“IIS 7.0:探索用于 Windows Vista 的 Web 服务器和更多内容”)。那是在 IIS 7.0 随 Windows Vista® 发布前的几个月。从那时起 ,用户便有机会亲身体验新 IIS 7.0 组件化且可扩展的体系结构以及其他改进。 自 Windows Vista 发布后,我们一直努力工作,以确保 IIS 7.0 成为 Windows Server® 2008 中安全可靠的 Web 服务器,加强它的稳定性、性能和对承载环境的支持。我们还深刻认识到 IIS 7.0 即 将成为一个灵活的 Web 应用程序平台的含义。除了作为 ASP 和 ASP.NET 等 Microsoft 应用程序框架的 优秀平台,我们还希望它成为当今使用的其他多种应用程序框架的主要平台。为了促进这个目标的实现, 我们增加了对 FastCGI 的支持,这是一个开放的 Web 服务器标准,它使 IIS 能够承载 PHP、Ruby on Rails 和 Perl 等应用程序框架。我们还与 PHP 的创建者 Zend Technologies 合作,以便在 Windows® 和 IIS 中提供一个可靠的高性能 PHP 实现。 IIS 7.0 不仅仅局限于提供对流行应 用程序框架的生产支持。IIS 7.0 采用新的 Microsoft® .NET Framework 扩展性模型,可以充分发 挥 ASP.NET 集成模式的作用,将关键功能添加到使用任何框架开发的应用程序中。这让您可以添加很酷 的功能,如访问控制或新的 URL 方案,还可以显著提高性能,通常无需改动一行代码。 在本文中 ,我们将深入探讨 IIS 7.0 ASP.NET 集成功能,以此来增强一个并非采用 ASP.NET 开发的应用程序。我 将向您展示如何才能使用现有的 ASP.NET 功能来增强应用程序,同时利用 IIS 级别的 ASP.NET 扩展性 开发新功能并将其添加到应用程序。 我们要讨论的应用程序是一个流行的 PHP 图库应用程序,名 为 Qdig (qdig.sourceforge.net)。我会在不改动一行 PHP 代码的情况下,向您展示如何向图库程序中 添加新的便利功能。首先,我会使用 ASP.NET 成员身份和表单身份验证功能对图库进行密码保护。然后 ,我还会使用搜索引擎友好的 URL 代替不雅观的参数化查询字符串 URL 对其进行升级。最后,我会使用 ASP.NET 输出缓存显著改进该应用程序的性能。 不过,我们首先需要了解一下 IIS 中新的 PHP 支持的背景,这对允许像 PHP 这样的应用程序框架够 享有全部 IIS 7.0 功能集是个核心问题。 IIS 和 PHP IIS 一直支持 PHP,但其支持方式 不足以在生产环境中承载现实中的许多 PHP 应用程序。这是因为 IIS 运行 PHP 应用程序采用的两种方 式均有局限性:使用通用网关接口 (CGI) 协议和使用 PHP ISAPI 扩展。 因为 CGI 要求每个请求 都对应一个单独的进程,所以使用 CGI 托管的应用程序在 Windows 上性能表现极差。另一方面,使用 IIS 高性能、多线程 ISAPI 接口的 PHP 应用程序通常表现得不够稳定,这是由于某些流行的 PHP 扩展 缺乏线程安全性。 IIS 团队开发了 FastCGI 组件,试图解决这些问题。开放式 FastCGI 协议能 够使 PHP 和许多其他要求单线程环境的应用程序框架(包括 Ruby on Rails、Perl 和 Python)更可靠 地在 IIS 上运行。与标准的 CGI 实现不同,FastCGI 通过维护一个工作进程池而允许进程重用,每个进 程一次处理不超过一个请求,从而使性能得到很大改进。FastCGI 还得益于以社区为中心的开发和测试模 型。 与此同时,Zend Technologies 努力改进 PHP 脚本引擎和 Windows 核心 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |