在建造IIS 7时,我们非常注重的一个核心重点是在于促成丰富的 .NET 扩展性模型,以提供开发人员能轻松插入和扩展web服务器的钩子(hooks,扩展点,插入点的意思)。
这些扩展性钩子是在web服务器的管道(pipeline)里(促成象新的IIS7比特率节流器这样的场景),在配置系统里(允许开发人员创建新的web.config数据定义设置),在健康监测系统里(允许开发人员加入自定义的跟踪事件),以及在管理工具里(允许开发人员插入新的管理界面模块)提供的。
我们加这些扩展性钩子,以便任何人都可以使用.NET来轻松地扩展和增强web服务器的功能。从自私的角度我们也非常想要这些钩子,这样我们可以经常性地发布功能包,来往核心web服务器中添加额外的功能。
IIS 7 管理包第一个预览版发布了
上个星期,IIS开发团队发布了一些我认为web开发人员会发现极其有用的,又非常酷的管理模块的第一个技术预览版。这个预览版往IIS7管理工具里添加了几个功能:
数据库管理器: 内置的SQL服务器数据库管理,包括创建,删除和编辑数据表和索引,创建/编辑存储过程和执行自定义的查询的能力。因为是与IIS管理工具相集成的,它在HTTP/SSL协议上工作,这意味着你可以使用该模块来远程管理你的主机应用(即使是低成本的共享主机帐号),而不用在Internet上直接暴露你的数据库。
日志报表: 内置的报表可视化,提供日志文件数据的图表支持。支持全范围选择和定制图表的创建,以及打印或保存报表的能力。跟数据库管理器一样,你可以在HTTP/SSL协议上远程使用这个模块,这意味着在远程共享主机场景下也能工作。
配置编辑器: 这是个强力模块,对在管理工具中编辑所有的web.config 设置提供了完全控制。你可以配置它来跟踪你用界面做的变动,然后让它自动生成配置变动脚本,然后你可以将其保存和修改,在以后以自动化的方式重新运行它。
请求过滤界面: 这个管理模块提供了对IIS7中新的请求过滤功能更多的控制,参阅Carlos这里的博客贴子以了解如何使用这个模块的细节。
.NET 授权: 这个管理模块提供了一个定制的授权规则编辑器,允许你更轻松地管理 ASP.NET <authorization> 配置部分。
FastCGI 界面: 这个管理模块对编辑新的<fastCGI>所有的设置提供了更多的支持(象在IIS7中将FastCGI模块用于PHP时)。
下面是一些屏幕截图,以及对日志报表和数据库管理器管理界面模块的简短示范:
日志报表管理模块
你是否往服务器上部署过web应用,想知道它得到多大的负载? 服务器的平均响应时间是多少?或者出现过多少个服务器错误(以及对应这些错误的URL)?所有这些设置都被IIS很仔细地记录在文本日志文件中了。今天大多数人都使用象IIS日志分析器(Log Parser)这样的命令行工具来查询和分析这些文件。
IIS 7 管理包以及新的“IIS报表(Reports)”管理模块现在还允许你在IIS管理工具中查询以及对报表用图表来显示:
原装的“IIS报表”管理模块带有一堆基于日志分析器的预制报表,你可以轻松地对你的网站和应用运行这些报表:
下面是我们可以调出的一个简单的图形报表,查看从我的TestSite应用返回的HTTP状态码(注意我们使用了“条形图表”可视化选项):
报表也可以使用日期范围来过滤,你还可以在报表页上点击打印或保存按钮来生成报表的打印版本或本地保存的版本。
IIS7管理工具是个富客户端应用(使用WinForms建造的),但它使用了连接到远程web服务器的基于HTTP的web服务来做所有这些远程访问和工作。这意味着它可以通过防火墙,主机供应商不需要在他们的网络上打开端口就可以允许这个功能。
一旦主机供应商在他们的web服务器上安装了IIS 7管理包之后,使用IIS管理工具(该工具是内置于Vista的,对Windows XP客户则可以单独下载)管理他们网站的远程客户就会被自动提示是否允许IIS报表管理模块(客户端模块的安装是无缝的)。然后,他们就能在他们的管理工具中使用报表模块调出他们远程网站的报表。
注: 如果他们想要的话,主机供应商也可以禁止这个功能,或者选择限制或定制提供的报表列表。希望大多数主机供应商会选择把这作为他们提供的IIS和ASP.NET计划的一个标准功能。
数据库管理器模块
你是否部署过应用和数据库到远程主机供应商那里,想对数据库做个很快的变动(但你的主机供应商却不支持使用SQL管理工具来访问)?使用IIS管理工具里的新“数据库管理器”模块,你现在可以使用HTTP/SSL,通过web服务器,远程访问你的数据库,来对它做变动。
只要把你的IIS管理工具连接到你的远程网站,点击新的“数据库管理器”图案即可:
在默认情形下,数据库管理器模块会查看你web应用的web.config文件的 <connectionStrings> 部分,允许你轻松地访问你的主机应用所使用的任何数据库。
例如,下面我的TestSite应用在我的web.config 的<connectionStrings>部分有个“NorthwindConnectionString”设置(所以它会出现在连接节点列表中)。当我点击它时,我可以查看和编辑我的存储过程和数据表定义(包括索引):
我们可以右击任何一个数据表,编辑其中的行记录,或者做定制的SQL查询,获取定制的数据集:
比较棒的是,主机供应商可以轻松地同时为专门的和共享的主机计划启用上面所有的数据库管理功能(即使在单个服务器上有成百上千个客户)。象管理工具中的所有其他模块一样,富客户前端和主机供应商处的后端间的通讯都是通过基于HTTP/SSL协议的web服务进行的(意味着它可以穿过防火墙,不要求主机供应商打开任何新的端口,也不用在Internet上直接暴露SQL服务器)。
希望这个数据库管理模块将是所有主机供应商都能启用的标准功能,这样以后将会极大地方便远程主机数据的管理。
结语
随着时间的迁移,你将看到IIS 7管理包将发布越来越多的管理界面模块,以及启用更多的功能(建造管理工具的开发团队的主管Carlos一直在通过他的博客主动地征询你想看到的功能的建议),如果你有什么建议或者想提供一些鼓励的话,一定要去给他发个评语。
你可以在这里下载IIS 7管理包的第一个技术预览版,以及通过这里的在线文档了解更多的详情。上面的模块既可以在Vista SP1的,也可以在Windows Server 2008的IIS7中工作。