如何使用IIS压缩所有文件

2024-05-03

IIS compression has been enabled: enter image description here

以下是web.config的http压缩标签:

<httpCompression
      directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"
      minFileSizeForComp="1"
      staticCompressionIgnoreHitFrequency="true"
      dynamicCompressionIgnoreHitFrequency="true">
  <dynamicTypes>
    <add mimeType="*/*" enabled="true" />
  </dynamicTypes>
  <staticTypes>
    <add mimeType="*/*" enabled="true" />
  </staticTypes>
</httpCompression>  

I see only CSS and JavaScript files are compressed when running the web app: enter image description here enter image description here

不幸的是,其他文件没有被压缩:

我在“C:\inetpub\temp”中没有看到“IIS 临时压缩文件”。

谁能提供有关如何诊断此问题的提示?

更新[2020-08-13]Windows Server 2016 上的配置编辑器:

Update[2020-08-13] Per @Kul-Tigin, Dynamic Content Compression needs to be installed: enter image description here


  1. 没有这样的设置名为dynamicCompressionIgnoreHitFrequency, 去掉它。

  2. 1(以字节为单位)对于minFileSizeForComp有点苛刻。压缩小文件只会减小响应大小。 别管它2700作为默认值。

  3. 与在属性上设置值不同(就像您在staticCompressionIgnoreHitFrequency="true"),添加设置作为节点不会覆盖继承的设置。

    在添加之前,删除可能继承的相应设置或清除所有继承的设置是防止错误(尤其是静默错误)的好习惯。

    否则可能会发生错误,或更糟糕的是,无声错误可能会破坏您的设置。

  4. 100(以 MB 为单位)每个应用程序池的空间限制可能不足以满足您的需求。如果我没记错的话,您的大多数文件都是兆字节的 WebAssembly 文件。

    因为您希望尽可能压缩所有文件;指定一个足够大的值。

    尽可能大;所有文件未压缩长度的总和。说2048 MB.

    通过这种方式,您无法达到磁盘空间限制,因此您的压缩缓存不会因空间不足而被删除。

    只要原始文件没有更改,压缩缓存就会保留并被传送。

    我的服务器上存储有 3 年历史的压缩缓存文件,随时可以交付。

所以,请尝试以下操作。

如果它不起作用,请提供有关请求标头和以未压缩形式交付的文件的更多信息。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpCompression 
        sendCacheHeaders="false" 
        directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" 
        doDiskSpaceLimiting="true" 
        maxDiskSpaceUsage="2048" 
        minFileSizeForComp="2700" 
        noCompressionForHttp10="true" 
        noCompressionForProxies="true" 
        noCompressionForRange="true" 
        staticCompressionIgnoreHitFrequency="true" 
        staticCompressionDisableCpuUsage="100" 
        staticCompressionEnableCpuUsage="50" 
        dynamicCompressionDisableCpuUsage="90" 
        dynamicCompressionEnableCpuUsage="50" 
        dynamicCompressionBufferLimit="65536">
          <dynamicTypes>
            <clear />
            <add mimeType="*/*" enabled="true" />
          </dynamicTypes>
          <staticTypes>
            <clear />
            <add mimeType="*/*" enabled="true" />
          </staticTypes>
        </httpCompression>  
    </system.webServer>
</configuration>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用IIS压缩所有文件 的相关文章

随机推荐

  • JavaScript 排序列表

    Javascript 或 jQuery 中有排序列表吗 我有一个巨大的列表 随着时间的推移 插入操作很少 每次添加单个项目时 我无法为整个列表调用 object sort 我需要插入 o log n 不 没有 你拥有的只是Array sor
  • 将多个参数传递给 UNIX shell 脚本

    我有以下 bash shell 脚本 理想情况下我会用它来按名称杀死多个进程 bin bash kill ps A grep awk print 1 然而 虽然此脚本有效 但传递了一个参数 端镀铬 脚本名称为end 如果传递多个参数 则它不
  • 以 ASCII 字符串形式获取 MemoryStream 内容的快速方法

    我在 MemoryStream 中有一个 JSON 字符串 我使用以下代码将其作为 ASCII 字符串获取 MemoryStream memstream new MemoryStream Write a JSON string to mem
  • 更改 IIS 主目录路径会触发重新启动吗?

    在 IIS 特别是 6 0 中 在主目录选项卡下 如果我更改本地路径 是否会导致 IIS 重新启动或应用程序池回收 相关的 是否有一个参考概述了 IIS 元数据库的哪些更改将触发重新启动或应用程序池回收 我还没找到这个 更改主目录路径中网站
  • 为什么 Swift UITableViewController 模板在 tableView cellForRowAtIndexPath 方法中使用可选参数?

    如果您创建新的 UITableViewController 类 您将看到重写的注释方法 override func tableView tableView UITableView cellForRowAtIndexPath indexPat
  • EWS 消息跟踪报告

    我一直在研究如何使用 EWS 从交换中获取消息跟踪报告 但似乎无法查明任何内容 我打算构建一个抓取日志文件的应用程序 但如果我可以通过 EWS 来完成它 那对我正在做的事情会更好 有任何想法吗 我终于能够为我的问题创建一个解决方案 我在 C
  • 跨线反映点的算法

    给定一个点 x1 y1 和一条直线的方程 y mx c 我需要一些伪代码来确定反映直线上第一个点的点 x2 y2 花了大约一个小时试图弄清楚但没有运气 请参阅此处的可视化 http www analyzemath com Geometry
  • Emacs:调试Python的方法

    我把这个贴在程序员 stackexchange com https softwareengineering stackexchange com questions 29844 emacs methods for debugging pyth
  • NancyFX:如何检查查询字符串/表单值是否已正确传递给我的处理程序?

    Nancy 通过以下方式将我的查询字符串和表单值传递给我的处理程序dynamic多变的 下面的示例显示了通过 Nancy 请求传递到 POST 处理程序的表单值 例如Request Form xxx Handler Post gt var
  • 我什么时候应该将可选值与 nil 进行比较?

    很多时候 您需要编写如下代码 if someOptional nil do something with the unwrapped someOptional e g someFunction someOptional 这似乎有点冗长 而且
  • 带条件的 Array.join()

    我该如何使用Array join 有条件的函数 例如 var name aa bb var s name join 输出是 aa bb 我想添加一个条件 仅显示不为空的单词 aa bb 您可以使用Array filter https dev
  • ImmutableJS:合并两个对象列表,而不重复它们

    假设我有以下内容 var allFoods Immutable List var frenchFood Immutable List type french fries price 3 type petit gateau price 40
  • collectstatic 无法收集管理静态文件

    当我运行collectstatic并且管理页面没有CSS时 我遇到以下错误 Error IOError Errno 2 没有这样的文件或目录 u usr local lib python2 7 dist packages django co
  • Angular UI-Router 的“ui-sref”未按预期工作

    如果我使用 href UI Router 将按预期工作 但是 如果我使用 ui sref 它不会按预期工作 我对以下示例有两个问题 锚点 link series 2 no param 和 link series 2 one param 不会
  • 如何使用 Powershell 查找组成员身份以包括嵌套组的成员并包括父组的名称

    我正在尝试创建一个组中所有用户的 CSV 以包含嵌套组的成员 并映射每个成员所在的组 我发现以下 powershell 命令几乎可以完成此任务 但我还需要知道嵌套组的每个成员的嵌套组的名称 MembersALL MembersRecursi
  • Android:RunOnUiThread 与 AsyncTask

    我相信 Google 建议开发人员使用 AsyncTask 但是 我想知道它与使用 new Thread 然后调用 RunOnUiThread 在性能和内存效率方面有何不同 使用 RunOnUithread 的示例 some code 1
  • 如何将 CSS 样式应用于四开输出

    我想将样式应用于四开块输出 我做的第一件事就是在类中嵌入一些 CSS 属性 output在四开文档中 然后使用以下内容引用它 r class output output 它有效 但我认为它不是很有效 因为我必须在每个文档中编写它 所以我写了
  • 基于邻近度的负载均衡

    我正在开展一个项目 我们在世界各地拥有大量 目前为 5 台 服务器 客户端通过集中式代理连接到其中一台服务器 我们知道客户的原籍国 但除此之外一无所知 我们完全控制服务器 因此我们可以获得所需的所有信息 我们不控制客户 他们必须按照标准通过
  • spring 调度一个具有固定延迟和初始延迟的作业

    我正在尝试安排方法调用 我想在服务器启动后立即安排此方法调用 然后每 30 秒调用一次 下面的代码 Configuration EnableScheduling EnableTransactionManagement public clas
  • 如何使用IIS压缩所有文件

    IIS compression has been enabled 以下是web config的http压缩标签