2016-09-09 7 views
0

Webclient.UploadFileAsync私は残りのWebサービスを呼び出してファイルをサーバーにアップロードしています。サーバーへのアップロードは、Webアプリケーションから行うこともできます。どのようにWebclient.UploadFileAsync関数の速度を向上させるには?

サーバー側の処理はミリ秒単位です。したがって、ほとんどのアップロード時間は輸送に費やされます。 2分で6.28 MBのファイルをWebアプリケーションからアップロードできますが、Webclient.UploadFileAsyncを使用してwinformアプリケーションからアップロードした場合、同じアップロードに3分かかります。

ウェブブラウザのアップロードの違い& webserviceアップロードは、ファイルをサーバに直接保存することです。ウェブサービスの場合、最初にウェブサービスが呼び出され、ファイルがサーバに保存されます。

このように大きなスピードの違いは何故ですか?どのようにこの違いを減らすことができますか?

更新:私は提案したようにフィドラーを使ってみました。興味深いものが見つかりました。ファイルをアップロードしたときに、フィドラーが実行されている間、アップロード速度が大幅に向上しました。私はフィドラーが実行されていないときにアップロードを試みました、私は以前と同じようにアップロード速度が非常に遅いので、WebClientクラスにバグがあるようです。この問題をどうやって回避しますか?

+0

FiddlerやWireSharkなどのネットワークトレースツールを使用して、ネットワークレベルで何が起こっているのかを判断してください。 – leetibbett

答えて

0

私の評判のためにコメントを追加することはできませんので、あらかじめご期待ください。ミドルウェアを話す必要があるため、全体の読み込み時間が増えますそれほど重要ではないし、そうする正しいツールがあります。これを行うことができる多くのFTPクライアントとライブラリがあります。おそらくWebサーバーの速度よりも速いでしょう。 Webサーバーを経由する必要がある場合は、おそらくが少し速く動作する外部Webクライアントを使用する以外の答えはほとんどありません。

あなたの質問に答えてソートするには、安全なFTPライブラリを使用するほうが高速で、スピードの違いは主に実際のサーバーを起動する前に通過しなければならないミドルウェアによるものです。

関連する問題