好的,我已经阅读了数小时有关此事的信息。阅读了许多SO帖子和博客等等,却没有找到答案。
目标:启用来自我的WCF服务的JSON响应的动态HTTP压缩。
注意:当applicationhost.config包含以下内容时,gzip已经适用于静态内容和动态内容:
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/json; charset=utf-8" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/atom+xml" enabled="true" />
<add mimeType="application/xaml+xml" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
</system.webServer>
很遗憾,在我使用的服务器上,applicationhost.config中缺少以下行:
<add mimeType="application/json; charset=utf-8" enabled="true" />
我无法手动添加它,因为服务器是由Elastic Beanstalk启动的AWS EC2实例(因此我可以在一个实例上更改它,但无法在每次启动实例时都更改所有实例)。
不幸的是,applicationhost.config包括这行:
<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
这意味着我不能在应用程序的web.config中覆盖httpCompression部分。
我的问题是: 我应该尝试哪些其他方法来启用动态内容的gzip压缩?
如果overrideModeDefault =“Allow”,那么我是否能够将httpCompression部分放置在应用程序的web.config中并期望它被覆盖?
如果需要进一步澄清,请告诉我。
干杯