【问题标题】:GZip response on IIS ExpressIIS Express 上的 GZip 响应
【发布时间】:2012-04-11 08:51:42
【问题描述】:

我想压缩来自我的 IIS Express 驱动的 Web 应用程序的响应。我们使用 IIS Express 作为本地开发网络服务器,并在暂存和我们的构建机器上使用 IIS。我找到了许多关于在 IIS 上启用 gzipped 响应的指南,但没有找到 IIS Express 的指南。有没有可能?

【问题讨论】:

    标签: asp.net gzip iis-express


    【解决方案1】:

    对于 Visual Studio 2019,我发现上述方法不起作用,因为 applicationhost.config 文件是项目独有的。该文件存储在.vs\<solution_name>\config\applicationhost.config。对于 VS 2017,它不在解决方案子文件夹中。

    因此,我的解决方案是将<httpCompression/> 替换为以下内容。

    <httpCompression directory="%TEMP%\iisexpress\IIS Temporary Compressed Files">
                <scheme name="gzip" dll="%IIS_BIN%\gzip.dll" />
                <dynamicTypes>
                    <add mimeType="text/*" enabled="true" />
                    <add mimeType="message/*" enabled="true" />
                    <add mimeType="application/x-javascript" enabled="true" />
                    <add mimeType="application/javascript" enabled="true" />
                    <add mimeType="application/json" enabled="true" />
                    <add mimeType="*/*" enabled="false" />
                </dynamicTypes>
                <staticTypes>
                    <add mimeType="text/*" enabled="true" />
                    <add mimeType="message/*" enabled="true" />
                    <add mimeType="application/javascript" enabled="true" />
                    <add mimeType="application/atom+xml" enabled="true" />
                    <add mimeType="application/xaml+xml" enabled="true" />
                    <add mimeType="image/svg+xml" enabled="true" />
                    <add mimeType="*/*" enabled="false" />
                </staticTypes>
            </httpCompression>
    

    【讨论】:

      【解决方案2】:

      您可以在 IIS Express 中启用压缩,就像 IIS 一样。

      1. 启动命令提示符并转到 IIS Express 安装文件夹 (%PROGRAMFILES%\IIS Express)

      2. 运行以下命令

      appcmd 设置配置 -section:urlCompression /doDynamicCompression:true

      要为 JSON 添加压缩,请从 IIS Express 安装目录运行以下两个命令:

      appcmd set config /section:staticContent /+[fileExtension='.json',mimeType='application/json']

      appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/json',enabled='True']" /commit:apphost

      确保重新启动 IIS Express。

      【讨论】:

      • 我对 javascript 文件和 html 文件进行 gzip 压缩。但是json仍然没有被压缩。我已将 mimetype“application/json”添加到 Web 配置和应用程序配置中。有什么想法吗?
      • 从 IIS Express 安装目录运行以下两个命令,看看是否有效(确保在运行这些命令后重新启动 IIS Express)。 (1) appcmd set config /section:staticContent /+[fileExtension='.json',mimeType='application/json'] (2) appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[ mimeType='application/json',enabled='True']" /commit:apphost
      • 如果您不静态提供 .json 文件,您可以省略第一个命令 - 修改 staticContent 的命令。如果你像我一样,你只在 HTTP POST 响应中提供 JSON。
      • 相同的命令也适用于 IIS 8,我假设适用于 7/7.5。
      • 也可以直接在{MyDocumentsFolder}\IISExpress\applicationhost.config编辑.config文件
      猜你喜欢
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-10
      • 2015-01-10
      • 2013-03-12
      • 2012-08-04
      相关资源
      最近更新 更多