3

.NET CFクライアントアプリケーションを開発しており、データ転送にWebサービスを使用しています。SharpZipLibを使用して転送されたデータセットを圧縮しているので、転送されたバイト配列のサイズがわかります。

1回の呼び出しでリクエストサイズ(htmlヘッダー、soapエンベロープ、実際のデータ)を完了するための簡単な方法があるのだろうか。私は本当にGPRS接続コストを最小限に抑えたいと思っています。

ありがとう...

4

3 に答える 3

1

全体的な質問について。申し訳ありませんが、ネットワークトレーサーを使用する以外にわかりません...

でも; データセットとSOAPが帯域幅が制限されたデバイスで常に最良の選択であるとは限らないことを謙虚に提案できますか?圧縮はうまく機能しますが、常に理想的とは限りません。提供される機能が必要でない限り、より単純なプロトコルを使用できます(POX、おそらく組み込みのプロトコル圧縮(GZIP / Deflate)を使用)。

もう一方の端では...メッセージとして表現できる場合は、protobuf-netのようなシリアライザーが役立つ可能性があります(生のバイナリ投稿と組み合わせる)。それらは非常にデータ密度が高いです(圧縮を使用しようとすると必然的にサイズが大きくなります)。ただし、クライアントで独自のデータ/変更の追跡を行う必要があり、RPCスタックはまだ不完全です(プロトタイプコードは動作していますが、まだコミットしていないため、まだコミットしていません)ユニットテスト)。サーバーも異なります(つまり、asmxなどではありません-おそらく不正なハンドラーまたはMVCコントローラー)。

別の代替手段として、特にJSONモード(帯域幅については、プロトコル圧縮を使用)では、ADO.NETDataServicesが重要になる場合があります。

于 2009-03-11T14:12:02.800 に答える
0

WCFは、生成されたSOAP+メッセージのサイズを確認できるメッセージトレースをサポートしています。これらのトレースファイルを使用して、探しているものを判別できますが、通信を圧縮すると、送信されるバイト数はそれほど明確ではなくなります。実際のワイヤサイズでは、wiresharkが適しています。または、WCFトレースから取得したメッセージを圧縮して、大まかなアイデアを得ることができます。

于 2009-03-11T17:17:45.880 に答える
0

Wiresharkは有名なプロトコル アナライザー ツールです。ただし、それはあなたのニーズにとってはやり過ぎかもしれません。

Fiddlerもチェックしてください。これは簡単で、エミュレーターからのトラフィックを監視できます。

tcpmonは、サーバーとクライアントの間に配置できる Java ユーティリティです。アプリケーションのエンドポイントを編集して tcpmon に接続し、すべてのリクエストを実際の Web サービスにプロキシするように tcpmon を構成する必要があります。10 分以上かかることはありません。非常にシンプルなユーティリティです。次に、tcpmon で raw リクエストを監視したり、Fiddler でトラフィックをキャプチャしたりできます。

于 2009-03-11T14:29:33.473 に答える