【问题标题】:How to disable gzip for just one handler .ashx如何仅对一个处理程序 .ashx 禁用 gzip
【发布时间】:2010-09-14 23:10:00
【问题描述】:

我正在使用 IIS6 运行一个网站,并且我编写了一个简单的通用处理程序,当它接收图像 url 作为查询字符串时返回较小的图像。我的问题是服务器正在将 gzip 应用于某些文件类型,例如 .aspx 和 .ashx。
这使得我来自处理程序的响应图像质量较低,因为它们被压缩了。

我怎样才能只为这个处理程序文件禁用 gzip,我希望在不编辑 IIS 的情况下找到解决方案。

这可能吗?

【问题讨论】:

  • 我怀疑还有其他事情正在发生?这些文件将在客户端解压缩,因此不应创建质量较低的图像。
  • 那么是什么造成了这种情况?,当我删除 gzip 时,一切看起来都很好。
  • 它必须与文件大小调整的动态性质有关.....我将添加一个答案,可以帮助您根据需要选择性地关闭它。

标签: asp.net vb.net iis-6 httphandler


【解决方案1】:

这个SO answer 似乎和你的场景几乎一模一样。

答案是this link 讨论如何根据/关闭压缩方案来做文件夹。

还有this link在文章底部附近讨论了这个问题。

您应该能够通过自己编辑元数据库或通过 adutils.vbs 来做到这一点。

【讨论】:

    【解决方案2】:

    这对我有用 - 在 ProcessRequest 方法中:

    context.Request.Headers.Remove("Accept-Encoding")
    

    我假设这会使 IIS 认为客户端不支持 GZip(或其他压缩方法),因此发送未压缩的响应。

    是的 - 这是一个 hack(通常你不应该弄乱请求标头),但它是迄今为止我见过的最简单的解决方案。

    我个人需要这个,因为在 GZip“压缩”之后,对 Ajax 调用的简单 5 字符纯文本响应最终是 124 字节长。

    这回答了这个问题的标题。但是,对于您的图像场景 - 它确实不应该有任何区别,因为 GZip 是无损的(未压缩的数据 = 原始数据)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-25
      • 2010-11-08
      • 1970-01-01
      • 2013-03-30
      • 2011-03-07
      • 2012-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多