我想压缩来自我的 IIS Express 驱动的 Web 应用程序的响应。我们使用 IIS Express 作为本地开发网络服务器,并在登台和构建机器上使用 IIS。我找到了许多关于在 IIS 上启用 gzip 响应的指南,但没有找到针对 IIS Express 的指南。甚至可能吗?
2 回答
您可以在 IIS Express 中启用压缩,就像 IIS 一样。
启动命令提示符并转到 IIS Express 安装文件夹 (
%PROGRAMFILES%\IIS Express
)运行以下命令
appcmd 设置配置 -section:urlCompression /doDynamicCompression:true
要为 JSON 添加压缩,请从 IIS Express 安装目录运行以下两个命令:
appcmd set config /section:staticContent /+[fileExtension='.json',mimeType='application/json']
appcmd.exe 设置配置 -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/json',enabled='True']" /commit:apphost
确保重新启动 IIS Express。
对于 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>