【问题标题】:Does minFileSizeForComp httpCompression attribute even work?minFileSizeForComp httpCompression 属性是否有效?
【发布时间】:2012-01-05 05:21:52
【问题描述】:

有人买了吗

<httpCompression minFileSizeForComp="XXX">

IIS 7.x 支持的设置?这里的文档http://www.iis.net/ConfigReference/system.webServer/httpCompression#005 声明

可选的 uint 属性。 指定文件必须包含的最小千字节数才能使用按需压缩。 IIS 7.5 的默认值为 2700;对于 IIS 7.0,默认值为 256。

我认为文档的意思是字节而不是千字节。你能想象只有 HTTP 压缩 2.7 MB 或更大的响应吗?

我尝试在 ApplicationHost.config 和 web.config 中设置此值,但没有任何影响。

【问题讨论】:

  • 文档在字节数方面肯定是错误的。它不是千字节(千字节),而是字节。您可以通过查看具有以下复选框文本的 IIS 7.x 压缩设置来确认这一点:“仅压缩大于(以字节为单位)的文件:”

标签: asp.net iis-7


【解决方案1】:

IIS 绝对尊重 minFileSizeForComp 设置。但是,如果同时启用动态和静态压缩,则可以通过动态压缩来压缩小文件。我写了一篇关于它的博客文章,并使用 Failed Request Tracing 规则分享了故障排除步骤,并为此行为提供了解决方案/解决方法。请在以下链接中找到它:

通过 Failed Request Tracing 揭开谜团:IIS 不尊重静态压缩的 minFileSizeForComp 设置 https://blogs.msdn.microsoft.com/amb/2016/05/23/iis-respects-minfilesizeforcomp-for-static-compression/

希望对某人有所帮助。

-- 主板

【讨论】:

  • 请查看URL,这将有助于提升您的内容质量 –
  • 我知道这个回复是 2016 年的,很有启发性。我需要过滤动态压缩请求,所以如果动态请求大小只有几个字节,不要压缩它,因为它需要额外的处理时间,有时会使请求大于原始请求。这可能吗?
【解决方案2】:

我知道我来晚了,但我围绕这个问题做了一些实验,并确定该值以 千字节 为单位。这看起来很疯狂,但确实如此。

我写了一篇更详细的博文here

编辑:嗯,问题似乎没有这么简单。无论选择什么,IIS 似乎都拒绝压缩低于特定大小的文件。

【讨论】:

  • @foldinglettuce 是的,我在进行编辑时删除了博客文章,因为我意识到我认为的答案根本不是。我想我从来没有解决过这个问题,所以你自己很抱歉。
  • 我想我在 applicationHost.config 中找到了我的问题的答案,您可以在其中打开或关闭 web.config 级别的压缩配置。感谢回复
  • @foldinglettuce 很高兴你找到了答案!
【解决方案3】:

根据上面@ahmetmithat 的回答,如果静态文件的媒体类型 (mimeType) 被添加到两个staticTypesdynamicTypes。对此的一种解决方案是清除从机器配置 (applicationHost.config) 继承的 dynamicTypes,并仅添加您希望动态压缩的那些类型。例如,如果您将返回的唯一动态类型是来自您的 REST API 的 JSON,您可以按如下方式配置您的 web.config

<httpCompression>
  <dynamicTypes>
    <clear />
    <add mimeType="application/json" enabled="true" />
    <add mimeType="*/*" enabled="false" />
  </dynamicTypes>
</httpCompression>

【讨论】:

    猜你喜欢
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2012-10-18
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多