我有一个ASP.NET页面需要复制驻留在另一台服务器上的文件夹。 文件IO的所有 在远程服务器上运行。这是不关于如何将文件从一台计算机复制到另一台计算机的问题,也不是关于如何进行递归目录复制的问题。这些任务非常简单。
我发现在运行ASP.NET应用程序的服务器上制作目录的副本非常快捷。一旦源文件夹和目标文件夹驻留在远程服务器(即文件服务器)上,它就会变得非常慢。我无法弄清楚为什么它如此缓慢,这意味着我无法找到解决问题的好方法。要非常清楚,这是我想要完成的一个例子:
如果已经回答了这个问题,那么请指出正确的方向。我找到了“如何制作递归副本”和“如何将文件夹复制到另一台服务器”的大量答案
答案 0 :(得分:1)
我建议使用一些远程执行命令,而不是从Web应用程序本身执行此操作。例如,使用Powershell或PSExec,不需要您的网络应用程序为复制操作的两个端点保持连接。我不确定你是如何进行复制的,但是如果你在.NET中调用任何东西来完成这项工作,那就意味着你的服务器是这个操作的中间人,这会减慢它的速度。
当我重新阅读您的消息时,看起来您认为IO发生在远程服务器本身上。在这种情况下,这些建议可能没什么用处。 :(
答案 1 :(得分:0)
Webserver如何与Fileserver通信?这两者之间的数据传输绝对是你的瓶颈。我建议使用WCF服务一次传输一个文件/文件夹(取决于数据的大小)。如果文件非常大,我还建议启用streaming。