質問

いsilverlight2beta2にアプリをアクセス、WCFサービス)このため、現在を使用することはできますかbasicHttpます。のwebserviceを返しまかなり大量のXMLデータです。このような無駄ながら、帯域幅の使用量としての立場からの対応がzip形式で圧縮が小さい効果を明確にする必要がある5(実際に貼り付けの対応にtxtファイルをzip形式で圧縮とても感じが良かったです。.

の請求は、"Accept-Encoding:gzip、deflate"-、本当にありがとういのは、WCFサービスgzip(その他を圧縮)に対応?

かったこ リンク たくなったら、迷うことなくそう少し複雑な機能が果たすべき役割、これまでのout-of-the-boxぁ.

OKをしたいのソリューションシステム。IO.圧縮とその答えとはいえない"う"のIIS7動的圧縮します。もので:

  1. 動的圧縮にIIS7 ワal。ただ、Nikhilのウェブ-デベロッパーのヘルパーのインターフェイスの家なかった。私の推測であることからSL手のウェブサービスの呼び出しをブラウザのブラウザの取扱い"のカバー"とNikhilのツールを見ると、圧縮されます。この事実を確認することをフィドラーズ状況を監視する外部交通のブラウザ用です。にフィドラーズに対応した、実際には、gzip圧縮!!

  2. その他の問題とする。IO.圧縮解システム変数に制御されます。IO.圧縮に存在しないSilverlight CLR.

なので私の目からみると、最も簡単な方法をWCF圧縮Silverlightする動的圧縮にIIS7書きできます。

役に立ちましたか?

解決

ご利用の場合IIS7これらを実現するために、、 圧縮モジュール.この構成することを可能にす圧縮のためにHTTP要求をサーバーです。

他のヒント

WS-圧縮(コンプレッションのためのWCF構成することを可能にす圧縮します。

WS-圧縮(コンプレッションのためのWCF によるパブロ-M.Cibraro

また、Microsofts GZipエンコーダのサンプル る"を作成しエンコーダのチャンネルを使用します。IO.圧縮。GZipStreamクラスの圧縮信WCFメッセージ"

こちらでお分かりになったネイティブの方のために、WCFい圧縮の際は、WCFプロジェクトです。って使用されたばかります。IO.圧縮名前空間短縮.こちらのコードを使用した

public static class CompressedSerializer
{
    /// <summary>
    /// Decompresses the specified compressed data.
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="compressedData">The compressed data.</param>
    /// <returns></returns>
    public static T Decompress<T>(byte[] compressedData) where T : class
    {
        T result = null;
        using (MemoryStream memory = new MemoryStream())
        {
            memory.Write(compressedData, 0, compressedData.Length);
            memory.Position = 0L;

            using (GZipStream zip= new GZipStream(memory, CompressionMode.Decompress, true))
            {
                zip.Flush();
                var formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                result = formatter.Deserialize(zip) as T;
            }
        }

        return result;
    }

    /// <summary>
    /// Compresses the specified data.
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="data">The data.</param>
    /// <returns></returns>
    public static byte[] Compress<T>(T data)
    {
        byte[] result = null;
        using (MemoryStream memory = new MemoryStream())
        {
            using (GZipStream zip= new GZipStream(memory, CompressionMode.Compress, true))
            {
                var formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                formatter.Serialize(zip, data);
            }

            result = memory.ToArray();
        }

        return result;
    }
}

そうしたサービスにバイト配列として入力のような

void ReceiveData(byte[] data);

行くのだった。

るものでなければならないのか注意する必要がある追加のmimeタイプ applicationHost.config<httpCompression><dynamicTypes> 部門のほか、可能な圧縮のためのサイト:

<add mimeType="application/soap+msbin1" enabled="true" />

ある動的対応がない圧縮(一部)では、mimeタイプの問題です。使用フィドラーズの内容に関連する。失敗した要求追跡可能か否かを判断するにあたり、IISはもう圧縮をします。場合の圧縮が正しく設定されま NO_MATCHING_CONTENT_TYPE完全な追跡 の微量出力に出力します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top