1

我需要压缩我的 WCF 响应。经过几次谷歌搜索,我发现

  • 我需要在 iis7 上启用压缩
  • 我需要在 applicationhost.config 中添加一些条目。

我的 wcf 托管在 discountasp.net 上。在控制面板中,我没有找到任何启​​用压缩的选项。此外,applicationhost.config 位于“C:\Windows\System32\Inetsrv\Config\applicationHost.config”目录中。

而在共享主机环境中,我无权访问该目录。

我的问题是,如果我的上述观察是正确的,我如何在共享主机中完成它?

编辑:

我在这里找到了一些东西:在此处 输入链接描述

我试过这个没有运气。在 Fiddler 的响应头中,我没有看到任何压缩。

4

1 回答 1

1

一种替代方法是实现一个 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 响应执行相同的操作。

于 2012-08-06T22:22:11.703 回答