2011-01-22 3 views
0

私は別のサーバー上にあるフォルダの複製を作成する必要があるASP.NETページを持っています。 ファイルIOのすべてがリモートサーバー上で実行されます。これはではなくです。あるコンピュータから別のコンピュータにファイルをコピーする方法についての質問はありません。また、再帰的なディレクトリコピーを実行する方法についての質問もありません。これらの作業はかなり簡単です。asp.netを使用してリモートサーバー上のフォルダの複製を作成し、それを高速に維持するにはどうすればよいですか?

私が見つけたのは、ASP.NETアプリケーションを実行しているサーバー上のディレクトリのコピーを作成するのが素早く速いことです。送信元フォルダと送信先フォルダがリモートサーバー(ファイルサーバー)にあるとすぐにとなり、非常に遅いとなります。なぜそれが遅いのか分かりません。つまり、問題を回避するための良い方法を見つけられません。完全に透明にするために、ここで私が達成しようとしているものの例です:

  • asp.netアプリケーションがファイルは、「ファイルサーバーという名前のサーバ上に配置されている「Webサーバ」
  • という名前のサーバー上で実行されています\セットアップという名前\\ファイルサーバー\ファイル\ setup_temp \\ファイルサーバー\ファイルの再帰的な複製を作成するためにウェブサーバ 『"
  • は私が上で実行されているウェブサイトを必要とする』

すでに、この質問にはそこください回答している場合正しい方向に私を向ける。 "再帰コピーを作成するにはどうすればいいですか"と "フォルダを別のサーバーにコピーするにはどうすればいいですか"という回答に多くの答えが見つかりました。

+0

「信じられないほど遅い」とはどのくらい遅いですか? –

答えて

1

Webアプリケーション自体ではなくリモート実行コマンドを使用することをお勧めします。たとえば、PowershellまたはPSExecを使用すると、ウェブアプリケーションでコピー操作の2つのエンドポイントの接続を維持する必要はありません。どのようにコピーを行っているのか分かりませんが、.NETで何かを呼び出してその作業を行うと、そのサーバーはその操作の中間者であり、遅くなります。

私はあなたのメッセージを再読すると、IOがリモートサーバー自体で起こっていると思っているようです。この場合、これらの提案はそれほど役に立たないかもしれません。 :

0

どのようにWebサーバーがFileserverと通信するのですか?これらの2つの間のデータ転送は間違いなくボトルネックです.WCFサービスを使用して一度に1つのファイル/フォルダを転送することをお勧めします。ファイルが本当に大きい場合は、streamingを有効にすることをお勧めします。

関連する問題