3

大きなzip形式のテキストファイルを従来のasmxWebサービスに転送しています。私がそうする理由は、ファイルのサイズが20 MBの解凍、4MBの圧縮であるためです。

これが方法です。必要に応じて追加情報を提供します。

    [WebMethod]
    public byte[] Transfer()
    {
        return File.ReadAllBytes(@"4MBFile.zip");
    }

C#と.NET 4を使用しています(プロジェクトの初期設定を2.0から4.0に変更しました)。

webmethodは一種のシリアル化を使用するため、オーバーヘッドが発生すると思います。

私は本当に4MBしか転送していませんか?このオーバーヘッドがある場合、どのように測定しますか?

4

1 に答える 1

3

XML Webサービスは、標準のWebプロトコルを介してWebユーザーに有用な機能を公開します。ほとんどの場合、使用されるプロトコルはSOAPです。

この質問は、ASMX Webサービスで使用されるXmlSerializerがデフォルトでBase64でバイナリデータをエンコードすることを示しています。そのため、オーバーヘッドが顕著になります。

私は本当に4MBしか転送していませんか?

Fiddlerを使用してサービスコールを監視できない理由は何ですか?正確なHTTP応答の本文サイズがわかります。

プロパティをhexBinaryとして帰属させることで解決策があるように思われるため、 Base64でエンコードされません。

于 2012-10-03T12:15:22.287 に答える