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>  


Request Headerとして MVC のヘッダーを取得しました

POST /SynergyAfricaServices/SystemAdmin/SystemAdminService.svc HTTP/1.1 コンテンツ タイプ: アプリケーション/soap+xml; charset=utf-8 Host: ntvmsynrpt0389.fps.nihilent.com Content-Length: 4132 Expect: 100-continue Accept-Encoding: gzip, deflate

応答ヘッダー

HTTP/1.1 200 OK Content-Type: アプリケーション/soap+xml; charset=utf-8 Content-Encoding: gzip Vary: Accept-Encoding Server: Microsoft-IIS/7.5 X-Powered-By: ASP.NET Date: Wed, 05 Jun 2013 12:44:18 GMT Content-Length: 1179

WPF アプリケーションの場合、要求ヘッダーとしてフィダー出力を取得しました

POST /SynergyLiteServicetInternet/Common/InfrastructureService.svc HTTP/1.1 コンテンツ タイプ: テキスト/xml; charset=utf-8 VsDebuggerCausalityData: uIDPo93vMvxA6GNCkVCT0f7hH3cAAAAASYZ0KzDZuUqLJNzHwK2nZidcwKk9ROFEsMvZpKu5Rw0ACQAA SOAPAction: " http://tempuri.org/IInfrastructure/LoadMenus " Host: ntvmsynrpt0389 Content-continue-Length: 1065

応答ヘッダー

HTTP/1.1 200 OK Cache-Control: プライベート Content-Length: 72001 Content-Type: text/xml; charset=utf-8 サーバー: Microsoft-IIS/7.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET 日付: Fri, 07 Jun 2013 06:14:51 GMT

于 2013-06-07T07:14:37.333 に答える
0

リクエスト ヘッダーの 2 番目のセットには、Accept-Encoding がありません: gzip、deflate。この SO リンクに従って、適切なヘッダーを挿入してください。

于 2013-06-07T09:43:09.927 に答える