0

我想从 WCF 3.5 服务发送压缩数据作为响应并访问 WPF 应用程序中的响应。我在 IIS 上托管了 WCF 应用程序并实现了 IIS 压缩以向客户端发送压缩响应。我通过参考以下链接实现了 iis 压缩

http://www.hanselman.com/blog/EnablingDynamicCompressionGzipDeflateForWCFDataFeedsODataAndOtherCustomServicesInIIS7.aspx

当我在 MVC 应用程序中访问该 WCF 服务时,压缩工作正常。但是当我尝试在 WPF 应用程序 Fiddler 中访问相同的 WCF 服务时,显示服务响应没有被压缩。

请帮我解决这个问题。

4

2 回答 2

0

在 MVC 和 WPF(Windows) 应用程序中,我们在配置文件中添加了以下绑定设置

<basicHttpBinding>
        <binding  name="EndPointHTTP" closeTimeout="00:59:00" openTimeout="00:59:00" receiveTimeout="00:59:00" sendTimeout="00:59:00"
                 allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="2147483647"
                 maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
                 messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
          <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647"
                        maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
          <security mode="None">

          </security>
        </binding>
      </basicHttpBinding>

<client>
      <endpoint address="http://ntvmsynrpt0389/SynergyLiteServicetInternet/SystemAdmin/SystemAdminService.svc"
          binding="basicHttpBinding" bindingConfiguration="EndPointHTTP"
          contract="ISystemAdmin" name="SystemAdminServiceEndpoint" behaviorConfiguration="CallContextEndpointBehavior">
      </endpoint>
 </client>  

我们在 MVC 中将标头作为
请求标头

POST /SynergyAfricaServices/SystemAdmin/SystemAdminService.svc HTTP/1.1 内容类型:application/soap+xml;charset=utf-8 主机:ntvmsynrpt0389.fps.nihilent.com 内容长度:4132 预期:100-继续接受编码:gzip,放气

响应头

HTTP/1.1 200 OK 内容类型:application/soap+xml;charset=utf-8 内容编码:gzip 变化:接受编码服务器:Microsoft-IIS/7.5 X-Powered-By:ASP.NET 日期:2013 年 6 月 5 日星期三 12:44:18 GMT 内容长度:1179

对于 WPF 应用程序,我们将 fidder 输出作为请求标头

POST /SynergyLiteServicetInternet/Common/InfrastructureService.svc HTTP/1.1 内容类型:文本/xml;charset=utf-8 VsDebuggerCausalityData:uIDPo93vMvxA6GNCkVCT0f7hH3cAAAAASYZ0KzDZuUqLJNzHwK2nZidcwKk9ROFEsMvZpKu5Rw0ACQAA SOAPAction:“ http://tempuri.org/IInfrastructure/LoadMenus ”主机:ntvmsynrpt0389 预期:105 内容长度:96

响应头

HTTP/1.1 200 OK 缓存控制:私有内容长度:72001 内容类型:文本/xml;charset=utf-8 服务器:Microsoft-IIS/7.5 X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET 日期:2013 年 6 月 7 日星期五 06:14:51 GMT

于 2013-06-07T07:14:37.333 回答
0

第二组请求标头缺少 Accept-Encoding:gzip、deflate。请按照此 SO 链接注入适当的标头。

于 2013-06-07T09:43:09.927 回答