我需要压缩WCF响应。经过几次谷歌搜索,我发现
- 我需要在iis7上启用压缩
- 我需要在applicationhost.config中添加一些条目
我的wcf托管在discountasp.net上。在控制面板中,我没有找到任何启用压缩的选项。此外,applicationhost.config位于"C:\Windows\System32\Inetsrv\config\applicationhost.config"目录中。
在共享托管环境中,我无法访问此目录。
我的问题是,如果我的上述观察是正确的,我如何在共享托管中完成它??
编辑:
我在这里发现了一些东西:在此处输入链接描述
我尝试了这个,但没有成功。在Fiddler中的响应标头中,我没有看到任何压缩。
一种替代方案是实现一个HttpModule,该模块将使用GZipStream类根据内容类型截取响应并动态压缩输出。
这篇文章有一个完整的例子,我已经在生产中成功地使用了这种方法。您所需要做的就是更改Web.config以注册http模块:
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="JsonCompressionModule" type="JsonCompressionModule"/>
</httpModules>
该示例对JSON响应执行此操作,但没有什么可以阻止您对XML响应执行同样的操作。