代码之家  ›  专栏  ›  技术社区  ›  Amr Elgarhy

如何仅为一个处理程序禁用gzip.ashx

  •  0
  • Amr Elgarhy  · 技术社区  · 15 年前

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

    我如何才能仅对此处理程序文件禁用gzip,我希望在不编辑IIS的情况下找到解决方案。

    有可能吗?

    2 回复  |  直到 8 年前
        1
  •  1
  •   Community CDub    8 年前

    这个 SO answer 似乎和你的场景完全一样。

    答案是 this link 讨论如何基于/关闭压缩场景创建文件夹。

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

    您应该能够通过自己编辑元数据库或通过adutils.vbs来完成。

        2
  •  0
  •   Jesper Høy    8 年前

    这对我很有用-在processrequest方法中:

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

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

    是的-这是一个黑客攻击(一般来说,您不应该弄乱请求头),但这是迄今为止我看到的最简单的解决方案。

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

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