启用HttpCompression

我试图为Json文件启用HttpCompression ,但IIS中的configuration编辑器选项中缺lesssystem.WebServer/httpCompression 。 我的configuration应用在我的网站的Web.Config中,并且在我的开发计算机(Windows 10 – IIS 10)中工作正常,但是当部署到testing服务器时,它不起作用。

这些是我们的Web.config设置:

 <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" staticCompressionIgnoreHitFrequency="true" dynamicCompressionDisableCpuUsage="70" dynamicCompressionEnableCpuUsage="50"> <remove name="gzip" /> <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" dynamicCompressionLevel="4" /> <dynamicTypes> <remove mimeType="text/*" /> <remove mimeType="message/*" /> <remove mimeType="application/javascript" /> <remove mimeType="application/json" /> <remove mimeType="image/svg+xml" /> <remove mimeType="*/*" /> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/javascript" enabled="true" /> <add mimeType="application/json" enabled="true" /> <add mimeType="image/svg+xml" enabled="true" /> <add mimeType="*/*" enabled="false" /> </dynamicTypes> <staticTypes> <remove mimeType="text/*" /> <remove mimeType="message/*" /> <remove mimeType="application/javascript" /> <remove mimeType="application/xml" /> <remove mimeType="image/svg+xml" /> <remove mimeType="*/*" /> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/javascript" enabled="true" /> <add mimeType="application/xml" enabled="true" /> <add mimeType="image/svg+xml" enabled="true" /> <add mimeType="*/*" enabled="false" /> </staticTypes> </httpCompression> <urlCompression doStaticCompression="true" doDynamicCompression="true" /> <serverRuntime frequentHitThreshold="1" frequentHitTimePeriod="00:00:05" /> 

我已经运行命令来解锁相应的部分:

 %systemroot%\system32\inetsrv\APPCMD unlock config /section:httpCompression %systemroot%\system32\inetsrv\APPCMD unlock config /section:serverRunTime 

我们已经安装了静态和dynamic内容压缩function。

我们缺less什么? 为什么在网站的configuration编辑器中缺lessHttpCompression选项? 为什么不在服务器上压缩我们的json文件?

更新我们可以找出问题的一部分。 我们用Notepad ++编辑apphost.config文件,由于本文描述的问题,似乎我们正在编辑正确的文件,但我们确实没有。 这是编辑文件与32位应用程序冲突的一个问题。 但是,Windows 10似乎不再存在这个问题。

我们使用记事本编辑了applicationHost.config文件,HttpCompression选项开始显示在IISpipe理器中,但仍然不起作用。

在服务器2012 R2上看不到它的原因是ApplicationHost.config的以下行

 <section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> 

在Windows 10上,它看起来像这样:

 <section name="httpCompression" allowDefinition="Everywhere" overrideModeDefault="Allow" /> 

在服务器2016年TP5:

 <section name="httpCompression" overrideModeDefault="Allow" /> 

AppHostOnly意思是,这只能在ApplicationHost.config中更改

这带来了几个问题:

为什么从IIS 8.5到IIS 10的变化,他们做了些什么来支持网站级别的httpCompressionconfiguration,还是只是在以前的IIS版本中错过的东西呢?

如果我们将其更改为IIS 8.5中的allowDefinition="Everywhere" ,它会起作用吗?

你可以把你的httpCompression节点放在httpCompression一个<location path=...>节点中吗?

现在我没有任何答案,但至less你知道为什么它不起作用。

在IIS服务器文件上findApplicationHost.config

更改名为httpCompression的部分。

 <section name="httpCompression" allowDefinition="Everywhere" overrideModeDefault="Allow" /> 

然后打开IIS服务器pipe理器,打开压缩 ,选中启用dynamic内容压缩检查启用静态内容压缩

然后打开pipe理器”面板上的configuration编辑 导航下拉菜单.. System.Webserver – > HttpCompression – > staticCompressionIgnoreHitFrequency设置为True

System.web – >caching – > outputCache – > OmitVaryStar设置为True

希望这适用于IIS 8.5。

最好的祝福。