1

このWCF 圧縮の記事を読みました.net 4.0 では、WCF 圧縮がそのまま使用できることを理解しています。

使用方法の明確な説明が見つかりません。設定を定義したり、バインディングを変更したりする必要がありますか? または自動的に圧縮されますか?

IIS7 で basicHttpBinding を使用しています。オプション「動的圧縮を有効にする」が true に設定されていますが、クライアントが要求を圧縮して応答を解凍する方法を理解していませんか?

メッセージサイズを縮小するためのバインディングの設定を含む説明があれば幸いです。帯域幅が 4MB のリモート サーバーで作業すると、パフォーマンスが非常に低下します。

4

4 に答える 4

2

しかし、クライアントがリクエストを圧縮し、レスポンスを解凍する方法を理解していませんか??

これはすべて HTTP 仕様の一部です。WCF は HTTP と IIS を使用するため、Web サーバーとクライアントの HTTP スタックの組み込みの圧縮を利用できます。

セクション 14.3 を確認してください: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

基本的に、クライアントは圧縮をサポートしていることを示すヘッダーを送信する必要があります。例: Accept-Encoding: gzip, deflate. これは、記事の WCF クライアント セクションの手順に従って設定できます。その後、クライアントは正しいヘッダーをサーバーに送信します。

サーバー側では、IIS はそのヘッダーを認識し、応答を圧縮します...そうするように構成されている場合。リンクした記事では、WCF サービスの圧縮用に IIS をセットアップする方法について説明しています。サーバーは、コンテンツが圧縮されていることを伝えるヘッダーをクライアントに送り返します: Content-Encoding: gzip. その後、クライアントは応答を解凍し、順調に進みます。

それだけです。クライアント ヘッダーを正しく設定し、圧縮された応答を返すようにサーバーを構成するだけです。この記事では、その方法について説明します。それが役立つことを願っています

于 2012-05-20T06:56:13.800 に答える
2

圧縮が WCF 4.5 に追加されたことに注意してください。ここでカバーされています:http://msdn.microsoft.com/en-us/library/aa751889(v=vs.110).aspx

有効にするには、カスタム バインディングを使用する必要があります。

<customBinding>
  <binding name="BinaryCompressionBinding">
    <binaryMessageEncoding compressionFormat="GZip"/> 
    <httpTransport /> 
  </binding> 
</customBinding>

バイナリエンコーディングでのみ機能します。また、シナリオを認識する必要があります。IIS でホストされている場合は、圧縮が既にオンになっている可能性があります。ここを参照してください: http://blogs.msdn.com/b/dmetzgar/archive/2011/04/29/automatic-decompression-in-wcf.aspx

于 2014-04-16T23:39:23.693 に答える
1
于 2012-05-20T08:33:03.757 に答える