如何使用asp.net复制远程服务器上的文件夹并保持快速?

时间:2011-01-22 18:06:40

标签: c# asp.net io

我有一个ASP.NET页面需要复制驻留在另一台服务器上的文件夹。 文件IO的所有 在远程服务器上运行。这是关于如何将文件从一台计算机复制到另一台计算机的问题,也不是关于如何进行递归目录复制的问题。这些任务非常简单。

我发现在运行ASP.NET应用程序的服务器上制作目录的副本非常快捷。一旦源文件夹和目标文件夹驻留在远程服务器(即文件服务器)上,它就会变得非常慢。我无法弄清楚为什么它如此缓慢,这意味着我无法找到解决问题的好方法。要非常清楚,这是我想要完成的一个例子:

  • asp.net应用程序在名为“webserver”
  • 的服务器上运行
  • 这些文件位于名为“fileserver”
  • 的服务器上
  • 我需要在“webserver”上运行的网站制作名为\\ fileserver \ files \ setup_temp <\ li>的\\ fileserver \ files \ setup的递归副本

如果已经回答了这个问题,那么请指出正确的方向。我找到了“如何制作递归副本”和“如何将文件夹复制到另一台服务器”的大量答案

2 个答案:

答案 0 :(得分:1)

我建议使用一些远程执行命令,而不是从Web应用程序本身执行此操作。例如,使用PowershellPSExec,不需要您的网络应用程序为复制操作的两个端点保持连接。我不确定你是如何进行复制的,但是如果你在.NET中调用任何东西来完成这项工作,那就意味着你的服务器是这个操作的中间人,这会减慢它的速度。

当我重新阅读您的消息时,看起来您认为IO发生在远程服务器本身上。在这种情况下,这些建议可能没什么用处。 :(

答案 1 :(得分:0)

Webserver如何与Fileserver通信?这两者之间的数据传输绝对是你的瓶颈。我建议使用WCF服务一次传输一个文件/文件夹(取决于数据的大小)。如果文件非常大,我还建议启用streaming