【发布时间】:2018-10-10 13:49:35
【问题描述】:
我有一个 ashx 处理程序,响应未压缩。客户端收到的content-encoding为空。
站点的 IIS 设置启用了静态和动态压缩。
对类似问题的研究表明,有些人在IIS配置编辑器的Web服务器节点中有一个httpCompression节点。我没有这样的节点。我有一个 url 压缩节点,我已将所有内容设置为 true。也许这取决于 IIS 版本。操作系统为Windows Server 2008 R2。
我将尝试使用 filter 属性和 GZipstream 类“强制”压缩(感谢 Rick Strahl 的博客)。如果有人能告诉我为什么 IIS 没有“自动压缩”或者可以指出我的解决方法中的任何问题,我将不胜感激。
更新:将GzipStream 附加到响应过滤器将客户端看到的内容长度减少了一半,这似乎表明“手动”压缩正在做某事。
我知道这是以前在这里问过的:
.ashx handler not getting gzip compressed despite IIS Config setting
但是,上一个问题没有得到任何答案,所以我再次问这个问题。
【问题讨论】:
-
您在发出 HTTP 请求时是否在请求标头中添加“Accept-Encoding”、“gzip”?
-
我想是这样,但我会在我回到办公室时检查。谢谢
-
看来你是对的。我没有在请求中设置 Accept-Encoding 标头。哦!非常感谢。虽然已经看到在代码中压缩/解压缩是多么容易,但我想我会坚持下去。它让我可以完全控制压缩的内容和不压缩的内容。
-
@user123456 如果您将您的评论作为答案重新发布,我会指出这是已接受的答案