gpt4 book ai didi

WCF REST 压缩

转载 作者:行者123 更新时间:2023-12-02 11:17:46 26 4
gpt4 key购买 nike

我有一个 REST 服务,它返回一大块 XML,大约值(value) 150k。

例如http://xmlservice.com/services/RestService.svc/GetLargeXML

因此我想压缩来自服务器的响应,因为 GZIP 应该将其减少到更小的值。在到处搜索后,我无法找到如何对 WCF REST 服务执行压缩的示例。帮助!!

注意:我的服务由第三方托管,我无法通过 IIS 执行此操作,因为他们不支持它。

最佳答案

实际上,做到这一点非常容易,至少在 .NET 4.0 中是这样(我没有用 3.5 进行测试)。我所做的就是让 IIS 7 来处理它。无需创建自定义压缩过滤器。

首先,确保您已安装 IIS 7 的动态压缩功能。然后,在 IIS 管理器中选择服务器并使用压缩模块打开动态压缩。或者,您可以从命令行执行此操作:

C:\windows\system32\inetsrv\appcmd set config -section:urlCompression /doDynamicCompression:true 

接下来,编辑以下文件。您可能必须复制它,而不是直接编辑配置(Notepad++ 对我提示),然后在准备好时覆盖原始文件。

C:\Windows\System32\Inetsrv\Config\applicationHost.config

在那里,您将在 下找到 部分。在 下,您需要添加当客户端发送 Accept-Encoding: gzip header 时要压缩的所有 mime 类型。例如:

<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="application/xml" enabled="true" />
<add mimeType="application/json" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>

完成所有这些后,回收您的应用程序池,您就可以开始了。如果这不起作用,请尝试重新启动服务器并确保在应用程序级别和服务器级别打开动态压缩。

注意:根据我读过的一些帖子,曾经存在一个错误,您必须指定字符编码(例如,“application/json; charset=utf-8”)。不过,我没有遇到任何问题。

关于WCF REST 压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1402295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com