如何在IIS 7.0中配置动态压缩?

日期: 2011-04-11 作者:Serdar Yegulalp翻译:Dan 来源:TechTarget中国 英文

互联网信息服务(IIS)的每个后续版本都会引入更多的选项来控制输出的缓存和压缩。比如,IIS 7.0首次安装时会默认启用压缩静态文件,而禁用动态产生的文件压缩功能,尤其是.ASP或者.ASPX网页。   因此,这个功能必须在IIS 7.0中手动启用,因为压缩动态产生的内容可能会出现几个问题。由于IIS 7.0的某些变化,静态内容现在是默认压缩的,这让处理器的压缩效率更高。

  使用动态压缩时,可以设置的选项之一是一个叫做缓存前动态压缩的ASP.NET应用程序指令,它是urlCompression元素的一部分。请注意,你也可以通过urlCompression来设定静态和动态压缩,但是绝大多数时间……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

互联网信息服务(IIS)的每个后续版本都会引入更多的选项来控制输出的缓存和压缩。比如,IIS 7.0首次安装时会默认启用压缩静态文件,而禁用动态产生的文件压缩功能,尤其是.ASP或者.ASPX网页。

  因此,这个功能必须在IIS 7.0中手动启用,因为压缩动态产生的内容可能会出现几个问题。由于IIS 7.0的某些变化,静态内容现在是默认压缩的,这让处理器的压缩效率更高。

  使用动态压缩时,可以设置的选项之一是一个叫做缓存前动态压缩的ASP.NET应用程序指令,它是urlCompression元素的一部分。请注意,你也可以通过urlCompression来设定静态和动态压缩,但是绝大多数时间你只能通过应用程序的IIS控制面板来设定。

  所以缓存前动态压缩选项(或者简称BeforeCache)描述了IIS如何压缩并缓存动态生成内容。当把这个选项的值设成TRUE时,内容会被生成、压缩、添加到一个缓存,然后按顺序从该缓存输出到客户端。当把值设成FALSE时,生成的内容格式不是压缩的,得到请求之后再重新压缩。

  把BeforeCache设成TRUE似乎是一个好主意。如果你需要压缩许多相同的动态生成内容,把它们提前压缩一次然后再多次使用还是有意义的。你会节省大量的带宽以及大量的CPU周期。不过,在有些情况下BeforeCache不会起作用,应该加以说明。

  首先,根据微软对BeforeCache的评论,“当输出缓存响应刷新后,在该响应进入输出缓存之前动态压缩不会执行。”这就意味着那些拥有专用输出缓存处理方式的网站在使用BeforeCache时可能会出现问题,比如说提供过时内容、或者给一个用户提供其他用户的定制内容等。

  另一件需要注意的事情是:不同类型的压缩形式对缓存功能会有什么样的影响。IIS 7.0支持GNU压缩和deflate压缩,它们是两种常用的网络客户端压缩类型。此外,他们现在的运行更可靠,在IIS5.0中,压缩活动明显失败。当一个客户端没有明确指定它可以接受什么代码时,或者当你的应用程序不能处理不同编码的页面请求时,事情会变的很复杂。

  最后,网页不会自动缓存。相反,对于那些频繁请求的内容,IIS会进行自动缓存。默认情况下,10秒钟内请求两次或者两次以上的网页都属于这种类型,就像frequentHitThreshold 和 frequentHitTimePeriod服务器参数控制的那样。如果一个网页每隔五分钟才请求一次,那么它将不会被自动缓存。如果人们正在一个系统上测试缓存功能,但是开始的时候他们没有生成合适的负载来激发缓存。

作者

Serdar Yegulalp
Serdar Yegulalp

Serdar Yegulalp从1994年到2001年为Windows杂志写作,覆盖了广泛的技术方面。他现在是《The Windows 2000 Power Users Newsletter》一书的出版者,辛勤钻研他擅长的Windows NT, Windows 2000 and Windows XP领域,并为TechTarget写专栏。