2011-01-04 6 views
1

ここにはメソッドGetFileContent(string fileName)を定義する従来のWSE3 ASP.Net Webサービスがあります。それがすることは、渡された名前を持つファイルの事前定義されたパスをチェックし、その内容を読んで、それをbase64エンコードし、そのエンコードされたものをレスポンスとして返送することです。ASP.Net Webサービスによるファイル転送は超低速です

残念ながら、プロセス全体が(さまざまな)年齢を取っています。私は、オンデマンドでパフォーマンスをベンチマークするコンソールクライアントアプリケーションを書いています: 2.5Megsは12秒以内に転送されることがありますが、時には40秒かかることもあります。別の27Megファイルが昨日16秒で実行されました。私がチェックしている

さらに物事:

  • CPUとスワップのパフォーマンスが言及する価値はありません(監視に、マシンは退屈に見える)

  • ネットワーク速度が十分です。

  • メソッド呼び出しは、クライアントがリクエストを送信した直後に実行されます。

  • 大きなファイルの場合、読み取りとエンコーディングに平均500msかかるため、要求の直後にreturn文も実行されます。

  • もう1つのクライアント(Javaベース)はさらに遅いので、がクライアントの問題である可能性があります。

誰かがこの厄介なものの後ろに来るために次に見なければならないアイデアはありますか?私はIISに支障がないと考えているIISのトラブルのように感じて、本当に...

事前のおかげでたくさん...

+0

tranferringファイル用のセットアップサービスを使用しているWebサービスが常に遅くなることがありますか?ftpでファイルをホストし、クライアントがそこからダウンロードできるかどうかを確認してください。 – Mahesh

+0

質問を更新できますかSystem.IOメソッドを使用しているサンプルコードを使用していますか? – RameshVel

+0

こんにちはマザー、残念ながら、全体の設定は非常に非常に複雑で、変更することはできません。サーバーはWin2003サーバー(64ビット)で動作するIIS6で、テストクライアントはWinXP SP3を実行し、インターネット経由ではない同じネットワーク上にあります。 –

答えて

0

まず、次のことを確認してください:WSEが廃止されていることをご存知でしょうか?

第2に、WSEはASMXテクノロジに基づいています。これは、サービスへの途中で受信データを4回以上複製するため、大きな要求に問題があります。データは大容量ですが、サービスがそれに手を加える前に少なくとも4倍のメモリが必要であると想定します。

回避策は、WCFにアップグレードすることです。

0

。私は時々、実際のパスの代わりに共有パスのパスが与えられていれば、IPを解決するのにもっと時間がかかったと思う。

+0

これはどうやってできますか? Webサービスメソッドは、クライアントから呼び出された後すぐに実行されます。その時点で、IP解決は既に起こっています... –

関連する問題