2011-09-30 11 views
5

.NET 4.0を使用してC#で作成されたRESTful WCF Webサービスがあります.GZipを使用して応答を圧縮したり、圧縮を解除したりしてください。 (私は要求に対して圧縮をサポートする必要があるかもしれませんが、それはまだ要件ではありません)。 IISホスティングはオプションではないため、Windowsサービス、つまり自己ホストWCFサービスとして展開されます。自己ホスト型のRESTful WCF WebサービスでGZip圧縮を有効にするにはどうすればよいですか?

私の検索結果はこれまでにないほど短くなっています。ほとんどのヒットは、IISの圧縮をオンにするか、SOAPベースのサービス用のカスタムメッセージエンコーダを作成するか、どちらのシナリオにも当てはまりません。

これを行う方法の参考になっている場合は、大変感謝しています。

答えて

1

自己ホスト型のシナリオでGZip圧縮を行うには、カスタムエンコーダのルート(コードはhttp://msdn.microsoft.com/en-us/library/ms751458.aspxのサンプル)が必要です(4.5ではバイナリエンコーディングの圧縮がサポートされているように見えますが、発表のたびにMSDN WCF Forumsにありますが、4.0の場合はすぐに存在しません)。自分のシナリオでカスタムエンコーダが機能しないのはなぜですか?

+0

すぐにお返事ありがとうございます。私は、カスタムエンコーダが行く方法ではないことは確かではありませんが、リンクしたサンプルはSOAPサービスであり、WCF RESTfulサービスのためにどのように修正するのかはよく分かりませんでした。私はそれをもう一度見てみましょう。 –

+0

既存のエンコーディングバインディング要素を渡すGZipMessageEncodingBindingElementのインスタンスを作成できます.WebMessageEncodingBindingElement(SOAPには使用されていません)を渡すと、GZipを使用するエンドポイントはSOAPも使用しません。 – carlosfigueira

関連する問題